前提・実現したいこと
現在、参考記事を元に下記のような環境の構築を行なっています。
バックエンド:nginx, rails api , ECS(EC2)
エラー
Cloud watch log を使用してnginxコンテナのログを確認しているのですが、下記のようなエラーが出ており、接続ができない状態です。
2022/02/23 23:25:26 [crit] 7#7: *1 connect() to unix:///app/tmp/sockets/puma.sock failed (2: No such file or directory) while connecting to upstream, client: 10.0.0.208, server: localhost, request: "GET /api/v1/posts HTTP/1.1", upstream: "http://unix:///app/tmp/sockets/puma.sock:/api/v1/posts", host: "10.0.0.148:50302"
Dockerfile(nginx)
1FROM nginx:1.16 2RUN apt-get update && \ 3 apt-get install -y apt-utils \ 4 locales && \ 5 echo "ja_JP.UTF-8 UTF-8" > /etc/locale.gen && \ 6 locale-gen ja_JP.UTF-8 7ENV LC_ALL ja_JP.UTF-8 8# 初期状態の設定ファイル 9ADD /nginx.conf /etc/nginx/nginx.conf 10ADD /default.conf /etc/nginx/conf.d/default.conf
default.conf
1upstream app { 2 # ソケット通信したいのでpuma.sockを指定 3 server unix:///app/tmp/sockets/puma.sock; 4} 5 6server { 7 listen 80; 8 # ドメインもしくはIPを指定 # デプロイする時は変更する(環境変数で用意すべきかも) 9 server_name localhost; 10 # server_name 127.0.0.1; 11 12 access_log /var/log/nginx/access.log; 13 error_log /var/log/nginx/error.log; 14 15 # ドキュメントルートの指定 16 root /app/public; 17 18 # リバースプロキシ設定 19 location / { 20 proxy_pass http://app; 21 } 22 23 client_max_body_size 100m; 24 error_page 404 /404.html; 25 error_page 505 502 503 504 /500.html; 26 try_files $uri/index.html $uri @app; 27 keepalive_timeout 5; 28}
nginx.conf
1user nginx; 2# workerプロセスの起動数を定義 autoに設定すると最適値を試みる 3worker_processes 1; 4 5error_log /var/log/nginx/error.log warn; 6pid /var/run/nginx.pid; 7 8 9events { 10 #一つのworkerプロセグが開ける最大コネクション数 11 12 worker_connections 1024; 13} 14 15 16http { 17 include /etc/nginx/mime.types; 18 default_type application/octet-stream; 19 20 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 21 '$status $body_bytes_sent "$http_referer" ' 22 '"$http_user_agent" "$http_x_forwarded_for"'; 23 24 access_log /var/log/nginx/access.log main; 25 26 sendfile on; 27 #tcp_nopush on; 28 29 keepalive_timeout 65; 30 31 #gzip on; 32 33 #これでdefault.confなどをincludeしてる 34 include /etc/nginx/conf.d/*.conf; 35}
Rails コンテナのログは下記です。
Puma starting in single mode... * Puma version: 5.6.1 (ruby 3.0.3-p157) ("Birdie's Version") * Min threads: 5 * Max threads: 5 * Environment: production * PID: 1 * Listening on http://0.0.0.0:3000 * Listening on unix:///app/tmp/sockets/puma.sock Use Ctrl-C to stop - Gracefully stopping, waiting for requests to finish
Dockerfile(rails)
1FROM ruby:3.0 2 3ENV RAILS_ENV=production 4 5RUN apt-get update -qq && apt-get install -y apt-utils build-essential libpq-dev nodejs vim default-mysql-client 6 7ENV APP_PATH /app 8 9RUN mkdir $APP_PATH 10WORKDIR /$APP_PATH 11 12COPY Gemfile $APP_PATH/Gemfile 13COPY Gemfile.lock $APP_PATH/Gemfile.lock 14RUN bundle install -j4 15 16COPY . /$APP_PATH 17# RUN mkdir -p $APP_PATH/tmp/pids 18# RUN mkdir -p $APP_PATH/tmp/sockets 19 20# 以下の記述があることでnginxから見ることができる 21# VOLUME /$APP_PATH/public 22VOLUME /$APP_PATH/tmp 23 24EXPOSE 3000 25
試したこと
Nginx の設定ファイルに原因があるのではと思い、server name の修正を何パターンか試していたのですが、エラーの状況が変わっていません。
恐れ入りますがエラー解決にご協力いただけると嬉しいです。
あなたの回答
tips
プレビュー