オプスイン流!業務におけるポイント
株式会社オプスインは、全国のエンジニアがリモートで柔軟に働ける環境を提供しています。
2024年9月5日
オプスイン流!業務におけるポイント
株式会社オプスインは、全国のエンジニアがリモートで柔軟に働ける環境を提供しています。
記事を読む
2024年7月23日
オプスインの強み
オプスインは、高い技術力と柔軟な対応力を誇るシステム開発会社です。
多様なプロジェクトに対応できる強固な基盤を持ち、初期開発から事業の成長、さらにはバイアウトまで、一貫した支援を提供します。
記事を読む
2020年7月13日
1台のサーバに複数のRailsアプリを共存させる方法
オプスインでWebシステムを開発する際によく利用する言語とフレームワークはRyby on Railsなのですが、STG環境や本番環境ではリバースプロキシとしてnginxを使用しています。 目次: はじめに nginxの設定 Rails(puma)の設定 おわりに 1.はじめに Railsアプリの開発では、動作確認を行う際にはRailsに同梱されているpumaサーバを用いることがほとんどです。 pumaはデフォルトだとポート番号3000で起動しますので、コマンド「rails s」で動作確認する時は http://localhost:3000/ にアクセスします。 一方でhttpのデフォルトポート番号は80なので、本番環境はもちろんSTG環境でもポート番号80でアクセスを受け付けるようにするのが一般的と思います。 pumaでも設定ファイル「{Rails_App}/config/puma.rb」に記載されているデフォルト値の3000から80に変更するか、もしくはコマンドでポート番号を指定して起動することでポート番号80で受け付けることができます。 【puma.rbの記述】 port ENV.fetch(“PORT”) { 3000 } 【ポート番号を指定したpumaの起動コマンド例】 $ bundle exec puma -p 80 ですが、この方法ですと1台のサーバにつき1つのRailsアプリしかポート番号80を使うことができません。 そこでポート番号80の受付はnginxに任せ、サーバ内ではunixドメインソケット通信を用いることで、1台のサーバで複数のRailsアプリを動作させることができます。 具体的な設定例は以下の通りです。 2.nginxの設定 nginxはメインの設定ファイル(/etc/nginx/nginx.conf等)に記載するincludeにより複数のサーバ設定を行うことができます。 【nginx.conf】 前略 ~ http { ~中略~ include /etc/nginx/conf.d/*.conf; ~ 後略 上記の設定例では、例えば「/etc/nginx/conf.d/sample_app_1.conf」のように「/etc/nginx/conf.d/」ディレクトリ配下に拡張子.confの設定ファイルを配置することで複数の設定ファイルが読み込まれます。 ですから、次のように各Railsアプリごとに設定ファイルを配置することで、nginxはポート番号80で2つ以上のRailsアプリにWebリクエストを振り分けることが可能になります。 ここでリクエストの振り分けは「server_name」を利用していますので、アクセスするURLは個別にドメインを設定する必要があります。(サブドメインの区別で可) 【sample_app_1.conf】 upstream app1 […]
記事を読む