現在Ubuntu 18.4のVPS(conoha)上にDockerを使い、複数サイトの構築をしております。
目標の環境は、以下です。
- WEBサイトはGatsbyで動かす(構築済)
- それぞれのサイトは、別ポートにて設置(http://グローバルIP:ポート のアクセスで表示される)
- ドメインにより、ポートを振り分ける(Nginx使用、ここがうまくいっていない)
- (補足)Gatsby、NginxはそれぞれDockerにて別コンテナを立てている
現在、Nginxコンテナ内のconfファイルに
Nginx
1server { 2 listen 80; 3 server_name example.com; 4 location / { 5 allow 127.0.0.1; 6 proxy_pass http://グローバルIP:8001; 7 } 8} 9 10server { 11 listen 80; 12 server_name example.net; 13 location / { 14 proxy_pass http://グローバルIP:8002; 15 } 16}
このような記述をしていますが、504エラーとなってしまい、望む動作が実現できません。
ちなみに、proxy_passの部分を、既存のサイトURLに変更した場合には、問題なく表示されます。
何が悪いのか、アドバイスをいただけましたら幸いです。
よろしくお願いいたします。
それぞれ504エラーとなったときの、error_logの内容を質問に追記してください。
ご覧いただき、ありがとうございます。
申し訳ございません、ログファイルはございません。
ログがないのは厳しいですね。
Nginx から それぞれのGatsby への接続性はありますか?
→コマンドで「curl http://グローバルIP:8001」を実行して、504にならないことなどで確認。
この時点で504エラーならnginxではなく、IPレベルで疎通できてない。FIrewallで止められているなど想像できます。
アドバイスをいただき、ありがとうございます。
Nginxのコンテナから「curl http://グローバルIP:8001」を実行したところ、通信ができていないことがわかりました。
VPSの大元のUbuntuの設定を確認したところ、ポート8001、8002が開いておらず、これを開けましたら無事にサイトが表示されるようになりました。
本当にありがとうございます。
深く感謝いたします。
解決しているのであれば、解決した方法や手順等を回答欄に記載して、自己解決で質問を終了させていただけないでしょうか?
teratail のヘルプ [質問をした後に自己解決してしまった]( https://teratail.com/help#resolve-myself ) 参照
あなたの回答
tips
プレビュー