複数のサイトが有効になっているNginxはnginxを壊します

複数のサイトが有効になっているNginxはnginxを壊します

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 を再起動すると、すべてが機能し始めました。

ありがとう!

関連情報