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

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

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

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

Docker

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

Q&A

1回答

1540閲覧

nginx docker上のアプリを動かしたい

MikMik

総合スコア46

nginx

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

Docker

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

0グッド

1クリップ

投稿2018/11/21 04:06

編集2018/11/21 04:32

/etc/nginx/conf.d/blog.conf

server { listen 80; server_name example.com; location / { proxy_pass http://172.17.0.1:8083; proxy_pass_request_headers on; proxy_redirect off; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } access_log /var/log/nginx/proxy_access_log; error_log /var/log/nginx/proxy_error_log; }

このようにdocker上で動かしているアプリをnginxの設定ファイルで指定しているのですが、80番で表示させることができません。ちなみにnginxに関してはdocker上ではなくローカル上にあります。

proxy_pass http://localhost:8083;

このようにもしてみたのですがアプリが表示されずにnginxのデフォルト画面になってしまいます。どこが間違っているのでしょうか?

ちなみに直接ipアドレスにport番号を付けたURLで接続すると通常通り表示されます。
お手数ですがご教授お願いいたします

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

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

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

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

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

Takumiboo

2018/11/21 04:27

ドメインの例示にはexample.comをご使用ください
Takumiboo

2018/11/21 04:33 編集

server_name example.com; とありますが、アクセスはそのドメインで行っていますか?
MikMik

2018/11/21 04:35

失礼いたしました。修正しました。いえ、置き換えて例示しています。実際に別のドメインです。さくらVPSを使用しており、お名前.comとVPSでのドメインの登録は済ませています
Takumiboo

2018/11/21 04:35

と、そのアクセスはnginxが動いているマシンからのアクセスですか?
MikMik

2018/11/21 04:37

nginxはvps上で動いています。マシンは私のパソコンから接続しています
Takumiboo

2018/11/21 04:41

お名前.comではexample.comの設定が済ませてあり、Aレコードはnginxが動いているVPSに向いている。VPS内では8083ポートでDocker内のアプリが作動中。VPS(ホスト)から(curlなどで)http://172.17.0.1:8083へのアクセスはできる。ここまでは正しいでしょうか?
MikMik

2018/11/21 04:44 編集

はい、そうです。http://example.com:8083でも接続が確認できています
guest

回答1

0

まず最初に確認ですが、設定ファイルを変更したら、nginx は、再起動していますよね?


nginx は、デフォルトの設定ファイルで、nginxのデフォルト画面を表示していたと思いますが、/etc/nginx/conf.d/blog.conf で、設定しても nginxのデフォルト画面が表示される状態であれば、nginx デフォルトの設定ファイル /etc/nginx/nginx.conf/etc/nginx/conf.d/www.conf で、同じドメイン や IPアドレス に対する設定が、重複して設定されていて、そちらの設定が優先されていることはないでしょうか?


または、nginx の設定ファイルにミスがあり、再起動に失敗しているということはないでしょうか?

sh

1nginx -t -c /etc/nginx/nginx.conf

を実行して、

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

のように syntax is oktest is successful と表示されるか確認してみてください。

ファイルにエラーがあると

nginx: [emerg] unknown directive "  include" in /etc/nginx/nginx.conf:16
nginx: configuration file /etc/nginx/nginx.conf test failed

のようなメッセージになります。(今回のエラーは、全角スペースを入れて発生させています。)

投稿2018/11/21 05:42

CHERRY

総合スコア25171

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

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

MikMik

2018/11/21 06:12

ご回答ありがとうございます。 service nginx restart を使って再起動させています nginx -t -c /etc/nginx/nginx.conf こちら試してみたところ両方問題なく通りました。 しかしまだ表示されません
CHERRY

2018/11/21 06:18

/var/log/nginx/access_log や /var/log/nginx/error_log には、何かメッセージは出ていますか?
CHERRY

2018/11/21 06:24

/etc/nginx/conf.d/blog.conf が、読み込まれていないような気がしているのですが、 /etc/nginx/nginx.conf の中で、 `include /etc/nginx/conf.d/*.conf;` か `include /etc/nginx/conf.d/blog.conf;` で読み込むように設定されていますよね?
MikMik

2018/11/21 07:46

include /etc/nginx/conf.d/*.conf; こちらが問題なく記述されていました。特にエラーログが出ているわけでもないですね
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問