前回は、pumaを常時起動のユーザーサービスとして登録し
http://XXX.XXX.XXX.XXX/
でWelcome画面が表示されるところまでを行いました。
今回はまず、URLをIPアドレスから仮想ホストのドメインに変更します。
ローカル環境ですので、ホストPCのhostsファイルに以下を追加します。
[/etc/hosts] XXX.XXX.XXX.XXX rails-test.com
http://rails-test.com/ を表示させてみましょう。
少々インパクトのあるエラー画面が表示されました・・・。
これは調べてみますと、Rails6からDNSリバインディング攻撃を防止する実装が行われており、
Rails.application.config.hosts に登録されていないホストからの接続の場合にエラーになるようです。
前回の最後に記載しましたが、pumaはdevelopmentモードで起動しています。
これを対応する場合は、developmentモードですので
config/environments/development.rb に
[config/environments/development.rb] Rails.application.configure do config.hosts << "rails-test.com" ← この行追加 ・ ・ ・ end
と追記します。
追記後に、pumaを再起動します。
http://rails-test.com/ を表示させてみると
表示されますね!
Railsでは、以下環境に切り分けることができるそうです。
・production(本番環境)
・development(検証環境)
・test(テスト環境)
せっかくなのでproductionモードで再起動してみます。
その場合は、以下のように修正します。
[/usr/lib/systemd/system/puma.service(本番環境モードに変更)] [Unit] Description=Rails APP Server After=network.target [Service] User=rails-test WorkingDirectory=/home/rails-test/test_app ExecStart=/home/rails-test/.rbenv/shims/bundle exec puma -e production ← ここ Restart=always [Install] WantedBy=multi-user.target
修正後に「今すぐ再起動」ボタンを押下して、pumaを再起動します。
http://rails-test.com/ でWelcome画面が・・・表示されませんね。
これはproductionモードになったため、デフォルトではWelcome画面が表示されないようになっているためです。
表示させたい場合は、以下のファイルを修正します。
[/home/rails-test/test_app/config/routes.rb] Rails.application.routes.draw do # Define your application routes per the DSL in https://guides.rubyonrails.org/routing.html # Reveal health status on /up that returns 200 if the app boots with no exceptions, otherwise 500. # Can be used by load balancers and uptime monitors to verify that the app is live. get "up" => "rails/health#show", as: :rails_health_check # get '/rails/info/properties' => "rails/info#properties" ← ※1 # get '/rails/info/routes' => "rails/info#routes" ← ※2 # get '/rails/info' => "rails/info#index" ← ※3 root to: "rails/welcome#index" ← Welcome画面 # Defines the root path route ("/") # root "posts#index" end ※1〜3は、developモードの場合にroute等の情報をブラウザ画面で確認可能にするルーティングです。 productionモードのためコメントアウトしています。
productionモードのドキュメントルートの時にWelcome画面を表示するようにルーティングしています。
修正後にpumaを再起動します。再起動後に
http://rails-test.com/ でWelcome画面が表示されました!
3回に渡り、とりあえずローカル環境の構築〜Rails環境のインストール〜Welcome画面の表示までを行いました。
ローカル環境ができましたので、Ruby on Railsの学習をしていこうと思います・・・。