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

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

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

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

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

2回答

23047閲覧

nginxでindex.htmlはあるはずなのに404 Not Foundエラーが帰ってきてしまう。

sequelanonymous

総合スコア123

nginx

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

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2018/10/30 02:17

タイトルにある通り、docker内に以下の設定がされていることは確認できているが、curlでipにアクセスすると404エラーが帰ってきて、index.htmlが見つからない状況になっている。
stackdriverからのログを追って、エラーを確認したところ、usr/share/nginx/html/healthcheckを読みにいっているのようなので、2つ目のコードを試しましたが、同じエラーがでて何も変わらずでした。

何かわかることありましたらご教示いただけませんでしょうか?

nginx.conf

server { listen 80; charset utf-8; location /healthcheck/ { root /aaa; index index.html; } location / { include uwsgi_params; uwsgi_pass uwsgi; } }

Dockerfile

FROM nginx RUN mkdir /aaa RUN echo "200" | tee index.html COPY ./nginx.conf /etc/nginx/nginx.conf CMD ["nginx", "-g", "daemon off;","-c","/etc/nginx/nginx.conf"]

試したことnginx.conf

server { listen 80; charset utf-8; location /healthcheck/ { root /usr/share/nginx/html; index index.html; } location / { include uwsgi_params; uwsgi_pass uwsgi; } }

試したことDockerfile

FROM nginx RUN mkdir /usr/share/nginx/html/healthcheck RUN echo "200" | tee /usr/share/nginx/html/healthcheck/index.html COPY ./nginx.conf /etc/nginx/conf.d/nginx.conf CMD ["nginx", "-g", "daemon off;","-c","/etc/nginx/conf.d/nginx.conf"]

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

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

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

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

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

guest

回答2

0

自己解決

uwsgi.iniの設定でsocket=:3031の書き方とhttp=:3031の書き方があるが、httpの場合は,proxy passを記載する必要がある。

投稿2018/11/25 06:30

sequelanonymous

総合スコア123

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

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

0

ほかに.confファイルは存在していませんか

docker は詳しくないのですが、nginx は nginx.conf のほかに conf.d/default.conf が存在します。こちらのコンフィグが反応していないでしょうか

nginx は上記のように conf.d/.conf を読み込む(include /etc/nginx/conf.d/.conf;)ようになっています

投稿2018/10/30 02:35

yukky1201

総合スコア2751

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

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

sequelanonymous

2018/10/30 02:45

おっしゃる通りでconf.d/default.conf は、存在しますが、あっても同じconf.d/配下にあれば読み込んでくれると言う認識です。conflictしない方法をご存知でしたら教えて頂けませんでしょうか?
sequelanonymous

2018/10/30 02:50

追記ですが、include /etc/nginx/conf.d/*.conf;は、当ファイルでは記述していません。
yukky1201

2018/10/30 03:01

設定で、「server_name *****」というものがあります server_name www.example.com; と記載があるコンフィグを有するサーバに、http://www.example.com/でアクセスすると、そのコンフィグに書かれた内容にて処理されます。 明示的に利用するコンフィグを指定するために、「server_name *****;」を書いたコンフィグを別途作成するとよいです。 コンフィグの使い分けとしては 1)nginx全体の設定(ログなど)はnginx.conf 2)自身が運用したいサイトの設定はconf.d/www.example.com.conf(例) 3)server_nameに合致しないそれ以外のサイトの設定はconf.d/default.conf
sequelanonymous

2018/10/30 03:06

「server_name *****」という部分は、上記ののファイルでいうとどこの部分になるでしょうか?
yukky1201

2018/10/30 03:09

当方のテストサーバ(http://192.168.1.162/)の設定例を提示します server { listen 80; server_name 192.168.1.162; charset UTF-8; root /www/home/test/html; location / { index index.php index.html index.htm; } location ~ .php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
sequelanonymous

2018/10/30 03:26

すみません、ちょっとまだわからないです。server_name *****は、どこの部分になりますか?
sequelanonymous

2018/10/30 03:58

記述ありましたね。すみません、見落としてました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問