質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

0回答

1024閲覧

(2: No such file or directory) while connecting to upstream,

Hellow

総合スコア11

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2022/02/23 23:29

編集2022/02/23 23:38

前提・実現したいこと

現在、参考記事を元に下記のような環境の構築を行なっています。
バックエンド:nginx, rails api , ECS(EC2)

参考記事:
https://qiita.com/saongtx7/items/f36909587014d746db73#ecs%E3%81%A7%E3%82%AF%E3%83%A9%E3%82%B9%E3%82%BF%E3%81%AE%E4%BD%9C%E6%88%90

エラー

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 の修正を何パターンか試していたのですが、エラーの状況が変わっていません。
恐れ入りますがエラー解決にご協力いただけると嬉しいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

68user

2022/02/24 01:57

nginx における UNIX domain socket って、"unix:///" という書き方なんでしょうか。ぐぐった限りでは server unix:/tmp/unicorn-cms.sock 的な記述でしたが。
yu_1985

2022/02/24 07:16

ログを見るとPumaを途中で止めているのが気になりますが、ちゃんとPumaが動いている時に接続しましたか? また、Railsのコンテナの方にちゃんと /app/tmp/sockets/puma.sock が存在するかは確認しましたか?もちろんPumaが動いている状態で確認してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問