Saltar al contenido

Cómo ejecutar rails puma server con un archivo de configuración usando ‘rails s puma’

Solución:

No es posible utilizar rails s puma para cargar su archivo de configuración de puma, como se confirma aquí https://github.com/puma/puma/issues/512, es posible que desee echar un vistazo a una pregunta similar aquí ¿Cómo puedo hacer que ‘puma’ se inicie, automáticamente, cuando ejecuto `rails server` (como lo hace Thin) donde se discute esto

Descubrí que usar Foreman (https://github.com/ddollar/foreman) es una buena solución para esto y también brinda flexibilidad adicional.

Heroku ha escrito una buena guía para esto (https://devcenter.heroku.com/articles/deploying-rails-applications-with-the-puma-web-server). A continuación se muestra un comienzo muy rápido.

Paso 1: Instale Foreman. Ejemplo para Mac OS X a continuación, guía completa en el sitio de Foreman

$ brew install foreman

Paso 2: Agregue esto a su Gemfile:

gem 'puma'

Paso 3: Cree un archivo llamado Procfile:

web: bundle exec puma -C config/puma.rb

Paso 4: Ahora inicie su aplicación usando

$ foreman start

00:36:05 web.1  | started with pid 19869
00:36:05 web.1  | [19869] Puma starting in cluster mode...
00:36:05 web.1  | [19869] * Version 2.11.1 (ruby 2.2.1-p85), codename: Intrepid Squirrel
00:36:05 web.1  | [19869] * Min threads: 1, max threads: 1
00:36:05 web.1  | [19869] * Environment: development
00:36:05 web.1  | [19869] * Process workers: 1
00:36:05 web.1  | [19869] * Preloading application
00:36:07 web.1  | [19869] * Listening on tcp://0.0.0.0:3000
00:36:07 web.1  | [19869] Use Ctrl-C to stop
00:36:07 web.1  | [19869] - Worker 0 (pid: 19870) booted, phase: 0

Desafortunadamente no puedes. Hoy tuve que hacer que Puma trabajara con ssl en mi entorno de desarrollo, así que edité el archivo config / puma.rb en mi aplicación rails (Rails 5) y agregué:

ssl_bind '127.0.0.1', '3000', {
   key: 'path_to_you_key_file', #/Users/DevRuby/.ssh/server.key
   cert: 'path_to_yout_cert_file', #/Users/DevRuby/.ssh/server.crt
   verify_mode: 'none' #fix errors due to self-signed certificate
}

Y agregué a mi config / environment / development.rb la siguiente línea para permitir que los registros se envíen a STDOUT:

config.logger = ActiveSupport::TaggedLogging.new(ActiveSupport::Logger.new(STDOUT))

Y en lugar de iniciar mi aplicación usando #rails s, estoy usando ahora el comando #puma que carga todas las configuraciones en el archivo de configuración config / puma.rb.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *