web_bonsaiの日記

web開発の学習日記です。誰に見せるためでもないただの日記です。

バックエンドとフロントエンドを別々のサーバーで運用したいのでバックエンドをサブドメインで公開する | Mac + Docker + Rails + Next.js その0045

やること

web-bonsai.techドメインで公開していたrailsアプリケーションのドメインapi.web-bonsai.techに切り替えていきます。

Next.jsで作っているfrontendサービスはこれを機に別サーバーに移管して運用します。

docker-compose.ymlを編集する

https-portalサービスのenviroment.DOMAINSを以下のようにします。

    environment:
      DOMAINS: 'api.web-bonsai.tech -> http://nginx:8000'

appサービスのenviroment.RAILS_ALLOW_HOST1を以下の通りにします。

    environment:
      - RAILS_ALLOW_HOST1=api.web-bonsai.tech

rails/config/environments/development.rbとproduction.rbの修正

この環境変数RAILS_ALLOW_HOST1は、

  • rails/config/environments/development.rb
  • rails/config/environments/production.rb

で以下のように使用されています。

config.hosts << ENV.fetch("RAILS_ALLOW_HOST1")

nginx/nginx.confを編集する

以下の、serverのserver_nameのところのweb-bonsai.techとなっていたところを以下のようにapi.web-bonsai.techとします。

 server {
  〜略〜
  server_name api.web-bonsai.tech
  〜略〜
}

docket-compose downとupする

downします。

$ docker-compose down

upします。

$ docker-compose up -d

ブラウザで確認してみる

ブラウザで

残タスク

  • frontendサービスを切り離して別のサーバーで運用する
  • api.web-bonsai.techはweb-bonsai.techからのリクエストだけ受け付けるようにアクセス制限する
  • frontendサービスに関する記述をapi.web-bonsai.techのリポジトリから削除する
    • docker-compose.yml
    • nginx/nginx.conf
    • .husky/pre-push