From eccb871a839b2909cd382e6fd33372ddafadf2fe Mon Sep 17 00:00:00 2001 From: Piotr Suwala Date: Sun, 23 Oct 2016 22:15:02 +0200 Subject: [PATCH] Use SSL and the Puma webserver in production --- .idea/workspace.xml | 227 +++++++----------------------- Procfile | 1 + config/environments/production.rb | 2 +- config/puma.rb | 55 ++------ 4 files changed, 65 insertions(+), 220 deletions(-) create mode 100644 Procfile diff --git a/.idea/workspace.xml b/.idea/workspace.xml index dac61e4..32bda20 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,16 +2,10 @@ - - + - - - - - - - + + @@ -31,16 +25,6 @@ - - - - - - - - - - @@ -101,7 +85,7 @@ - + @@ -111,21 +95,31 @@ - - + + - - + + - - + + - - + + + + + + + + + + + + @@ -169,6 +163,9 @@ @@ -230,136 +227,6 @@ \ No newline at end of file diff --git a/Procfile b/Procfile new file mode 100644 index 0000000..528ca4b --- /dev/null +++ b/Procfile @@ -0,0 +1 @@ +web: bundle exec puma -C config/puma.rb \ No newline at end of file diff --git a/config/environments/production.rb b/config/environments/production.rb index 8516803..247abbc 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -40,7 +40,7 @@ # config.action_cable.allowed_request_origins = [ 'http://example.com', /http:\/\/example.*/ ] # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. - # config.force_ssl = true + config.force_ssl = true # Use the lowest log level to ensure availability of diagnostic information # when problems arise. diff --git a/config/puma.rb b/config/puma.rb index c7f311f..6c1cdfd 100644 --- a/config/puma.rb +++ b/config/puma.rb @@ -1,47 +1,16 @@ -# Puma can serve each request in a thread from an internal thread pool. -# The `threads` method setting takes two numbers a minimum and maximum. -# Any libraries that use thread pools should be configured to match -# the maximum value specified for Puma. Default is set to 5 threads for minimum -# and maximum, this matches the default thread size of Active Record. -# -threads_count = ENV.fetch("RAILS_MAX_THREADS") { 5 }.to_i +workers Integer(ENV['WEB_CONCURRENCY'] || 2) +threads_count = Integer(ENV['RAILS_MAX_THREADS'] || 5) threads threads_count, threads_count -# Specifies the `port` that Puma will listen on to receive requests, default is 3000. -# -port ENV.fetch("PORT") { 3000 } +preload_app! -# Specifies the `environment` that Puma will run in. -# -environment ENV.fetch("RAILS_ENV") { "development" } +rackup DefaultRackup +port ENV['PORT'] || 3000 +environment ENV['RACK_ENV'] || 'development' -# Specifies the number of `workers` to boot in clustered mode. -# Workers are forked webserver processes. If using threads and workers together -# the concurrency of the application would be max `threads` * `workers`. -# Workers do not work on JRuby or Windows (both of which do not support -# processes). -# -# workers ENV.fetch("WEB_CONCURRENCY") { 2 } - -# Use the `preload_app!` method when specifying a `workers` number. -# This directive tells Puma to first boot the application and load code -# before forking the application. This takes advantage of Copy On Write -# process behavior so workers use less memory. If you use this option -# you need to make sure to reconnect any threads in the `on_worker_boot` -# block. -# -# preload_app! - -# The code in the `on_worker_boot` will be called if you are using -# clustered mode by specifying a number of `workers`. After each worker -# process is booted this block will be run, if you are using `preload_app!` -# option you will want to use this block to reconnect to any threads -# or connections that may have been created at application boot, Ruby -# cannot share connections between processes. -# -# on_worker_boot do -# ActiveRecord::Base.establish_connection if defined?(ActiveRecord) -# end - -# Allow puma to be restarted by `rails restart` command. -plugin :tmp_restart +on_worker_boot do + # Worker specific setup for Rails 4.1+ + # See: https://devcenter.heroku.com/articles/ + # deploying-rails-applications-with-the-puma-web-server#on-worker-boot + ActiveRecord::Base.establish_connection +end \ No newline at end of file