Nginx サーバーで奇妙な問題が発生しています。内部的にサーバー上で実行されている複数のサービスのリバース プロキシとして Nginx を使用しています。
私が達成しようとしていたのは次のようなことです:
app1.mydomain.com --- --- server 1: 10.0.0.2
\ 10.0.0.1 /
|--- nginx reverse proxy server --- |
/ \
app2.mydomain.com --- --- server 2: 10.0.0.3
そこで、app1 に最初のものを追加し、ドメイン プロバイダーに DNS 設定を追加したところ、すべてが完璧に機能しました。私はかなり興奮して 2 つ目のものを試しましたが、すべてが壊れてしまいました。実行したところ、すべて正常にnginx -t
テストされました。Nginx サーバーはエラーなしでまだ実行されていましたが、app1.mydomain.com を表示できなくなりました。
server_nameとproxy_passを除いて、設定は基本的に同じです。
ファイル: /etc/nginx/sites-available/app1.mydomain.com
server {
server_name app1.mydomain.com;
location / {
client_max_body_size 512M;
proxy_pass http://10.0.0.2;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
ファイル: /etc/nginx/sites-available/app2.mydomain.com
server {
server_name app2.mydomain.com;
location / {
client_max_body_size 512M;
proxy_pass http://10.0.0.3;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
私がこれをやった方法は、sites-available内のそれぞれのファイルに各設定を追加し、それからsudo ln -s /etc/nginx/sites-available/app1.mydomain.com /etc/nginx/sites-enabled/
これは app1 では完璧に機能しましたが、app2 で同じことを実行した後、app1 にアクセスできなくなり、app2 が表示されなくなりました。
私のルーターでは、ポート 80 と 443 をリバース プロキシ サーバー 10.0.0.1 に転送しており、これがルーターの唯一のルールです。ドメイン名プロバイダーでは、正しい IP を指す正しい A レコードがあります。アプリ 1 ではすべて正常に動作することを確認できましたが、アプリ 2 のシンボリック リンクを実行してサイトを有効にし、nginx を再起動すると、すべてにアクセスできなくなります。
何が起こっているのか何か分かりますか? ありがとうございます!
答え1
@symcbean が実際に答えを指摘しました。私が投稿した構成は不完全でした。app1 では、示された構成を正確に使用し (これは何とか機能しました)、次に certbot を実行して、TLS 構成と listen 変数を構成に追加しました。
次に、アプリ 2 の設定を (示されているとおりに) 追加したところ、サーバー上でエラーは発生しませんでしたが、アプリ 1 またはアプリ 2 にアクセスしようとすると、接続拒否エラーが発生し始めました。listen 設定を追加して nginx を再起動すると、すべてが機能し始めました。
ありがとう!