【67日目】【1日20分のRailsチュートリアル】【第7章】本番環境用Webサーバーの設定
今日は「7.5.2 本番環境用Webサーバー」から。
7.5.2 本番環境用Webサーバー
WEBrickは本番環境として適切なWebサーバではありません。よって、今回はWEBrickをPumaというWebサーバに置き換えてみます。
はい。
まずはpuma gemをGemfileに追加します (リスト7.28)。このとき、ローカル環境 (開発用の環境) でPumaを使う必要はないので、リスト7.28のように:productionグループの中に追加しておきます。
:productionグループの中にpuma
を追加。
Gemfile
group :production do : gem 'puma', '2.11.1' end
BundlerにGemfile.lockを更新してもらう必要があるので、いつものように次のコマンドを実行しておきます。
$ bundle install
次のステップは、config/puma.rbというファイルを作成し、そこにリスト7.29のような設定情報を追加します。
config/puma.rb
というファイルを作成して
$ touch config/puma.rb
Herokuのドキュメントに載ってる下記内容をコピペ。
workers Integer(ENV['WEB_CONCURRENCY'] || 2) threads_count = Integer(ENV['MAX_THREADS'] || 5) threads threads_count, threads_count preload_app! rackup DefaultRackup port ENV['PORT'] || 3000 environment ENV['RACK_ENV'] || 'development' 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
最後に、Procfileと呼ばれる、Heroku上でPumaのプロセスを走らせる設定ファイルを作成します (リスト7.30)。
Gemfileと同じディレクトリにProcfileを作成。
$ touch Procfile
同じようにHerokuのドキュメントの内容をコピペ。
web: bundle exec puma -C config/puma.rb
これで、本番環境用のWebサーバの設定は完了しました。これらの変更をコミットし、デプロイしてみましょう。
コミット&デプロイしました。
$ bundle exec rake test 21 tests, 43 assertions, 0 failures, 0 errors, 0 skips $ git add -A $ git commit -m "Use SSL and the Puma webserver in production" $ git push $ git push heroku $ heroku run rake db:migrate
このとき、URLがhttps://に変わっていて、アドレスバーに鍵アイコンが表示されていることにも注目してください。
$ git push heroku
で表示されるURLがhttps://
になってます。
ブラウザのアドレスバーにも鍵アイコンが表示されてます。SSL化できてる!
アカウント登録もできました。が、id=2のユーザー登録になってる…??
railsコンソールでも見てみたけどid=1のユーザーは存在しないそうで。じゃあ何故id=2から始まるんだ。。。
$ heroku run console --sandbox > User.find(1) ActiveRecord::RecordNotFound: Couldn't find User with 'id'=1
詳細分からないけどユーザー登録はできたのでそっとしておきます。。。
そのうち分かるかも。
今日の作業時間は【32分】。
次は「7.5.3 Rubyのバージョン番号」から。