0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?