U-Yuri’s 健忘録

U-Yuri’s 備忘録

プログラミングを勉強しています。アウトプットに活用しているブログです。

④Railsアプリをデプロイするまで【ドメインを当てる】

はじめに

前回の続きです。 前回はGoogleドメインサブドメインを作成しました。 今回はデプロイしたRailsアプリにサブドメインを当てていく作業です。

環境

  • Rails
  • さくらVPSDebian
  • nginx
  • SQLite3

  • $ sudo vim /etc/nginx/nginx.conf 内のserver_nameを欲しいドメインに書き換える

 server {
                listen 0.0.0.0:80;
                server_name 〇〇.com;
                proxy_set_header X-Forwarded-Host $host;
                location / {
                        proxy_pass http://127.0.0.1:3000;
                }
        }
  • ブラウザを開いてみる。

    エラー

  • $ tail -f log/production.logコマンドでlogを見ながらもう一度ブラウザを開いてみる

$ tail -f log/production.log

----省略-----

I, [2023-09-12T17:34:24.745938 #37719]  INFO -- : [99903f48-ccea-466d-8a71-94dbc2d5caed] Started GET "/" for 127.0.0.1 at 2023-09-12 17:34:24 +0900
F, [2023-09-12T17:34:24.746355 #37719] FATAL -- : [99903f48-ccea-466d-8a71-94dbc2d5caed]
[99903f48-ccea-466d-8a71-94dbc2d5caed] ActionController::RoutingError (No route matches [GET] "/"):
[99903f48-ccea-466d-8a71-94dbc2d5caed]

RoutingErrorなのでおそらくRails側のRootの設定なのでは? (ちなみに〇〇.com/my_memosであれば接続可能だが、パスは含めないで接続できるようにしたい。)

  • config/routes.rbを見てみる
ails.application.routes.draw do
  devise_for :users

  devise_scope :user do
    get '/users/sign_out' => 'devise/sessions#destroy'
  end

  

  # Define your application routes per the DSL in https://guides.rubyonrails.org/routing.html

  # Defines the root path route ("/")
  # root "articles#index"
  resources :my_memos, only: [:index, :new, :create, :edit, :update, :destroy, :show]
end
 

rootはドメイン/my_memoなので設定が必要。

  • config/routes.rbコメントアウトされている# root "articles#index"で設定するようなのでほしいrootに変更する。
root "my_memos#index"

〇〇.comへのリクエストが来たらmy_memos#indexにリダイレクトする。

これでドメインを当てる作業は終了。

まとめ

$ sudo vim /etc/nginx/nginx.confconfig/routes.rbだけを変更するのみでできました!