0
0

More than 3 years have passed since last update.

Dockerを利用してnginxをrailsプロジェクトへの導入手順をまとめてみました

Posted at

railsのアプリケーションサーバpumaではなく、nginxをウエブサーバーとして、導入してみましたので、メモとして、導入手順をここに残しておきました。

nginx ウェブサーバーの導入手順

railsのDockerfileを修正

 ※puma.sockを配置するディレクトリを作成(socketsとはnginxとの通信用)
 RUN mkdir -p tmp/sockets

nginx用のフォルダを新規作成

 ./containers/nginx/

nginx用のDockerfileと設定ファイルを格納

 ./containers/nginx/Dockerfile
 ./containers/nginx/nginx.conf

docker-compose.ymlファイルを修正

  railsとnginx通信用のフォルダをマウント
  nginx起動用のサービスを追加

Dockerfile
  app
      build: .
      volumes:
        - .:/webapp
        #nginxとpuma間の通信では、ボリュームズのマウントが必要
        - tmp-data:/webapp/tmp
      command: rails s
      depends_on:
        - db
    web:
      build:
        context: containers/nginx
      volumes:
        #nginxとpuma間の通信では、ボリュームズのマウントが必要
        - tmp-data:/webapp/tmp
        - ./containers/nginx/log:/var/log/nginx/
      ports:
        - 80:80
      depends_on:
        - app

puma.rbを修正

pumaのhttp機能ではなく、nginxを使用する理由

puma+railsのみで稼働する場合、大量なアクセスが来る場合、システム全体のパフォマンスが大幅に落ちる可能性があるその代わりに、nginxはCで作成されたため、処理性能が高く、使用メモリが少ない特徴で、
 ・ビジネスロジックなどの動的処理が必要ない静的処理をnginxで対応、
 ・ビジネスロジックが必要な動的処理をpuma+railsでrailsで対応
という組み合わせで、システム全体のパフォマンスを高めることが可能

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0