VPS に関連付けられた 2 つの IP があり、2 つのノード アプリを提供するようにこれを設定しようとしています。これが私の構成です:
/etc/nginx/sites-enabled/domain1:
upstream app_domain1 {
server 127.0.0.1:4000;
}
server {
listen 0.0.0.0:80;
server_name IP1.xxx.xxx.xxx;
access_log /var/log/nginx/domain1.log;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Nninx-Proxy true;
proxy_pass http://app_domain1/;
proxy_redirect off;
}
}
そして /etc/nginx/sites-enabled/domain2 で
upstream app_domain2 {
server 127.0.0.1:3000;
}
server {
listen 0.0.0.0:80;
server_name IP2.xxx.xxx.xxx;
access_log /var/log/nginx/domain2.log;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Nninx-Proxy true;
proxy_pass http://app_domain2/;
proxy_redirect off;
}
}
そして /etc/nginx/sites-enabled で、以下を実行しました:
ln -s /etc/nginx/sites-available/domain1 domain1
ln -s /etc/nginx/sites-available/domain2 domain2
ここで、/var/www/domain1 に移動して正しいポートで「node app.js」を実行すると、関連する IP アドレスにアクセスしてアプリが実行されていることを確認できますが、domain2 については同じではありません (確認したところ、この構成の正しいポートで実行されていますが、リクエストがタイムアウトするだけで、まったく応答がありません。
では、どうすればこれをトラブルシューティングできますか?
アップデート:
ポートに直接アクセスすると、両方の IP で両方のアプリが利用できることがわかります。
IP1.xxx.xxx.xxx:4000 により、ドメイン 1 のアプリが提供されます
IP1.xxx.xxx.xxx:3000 により、ドメイン 2 のアプリが提供されます
と
IP2.xxx.xxx.xxx:4000 により、ドメイン 1 のアプリが提供されます
IP2.xxx.xxx.xxx:3000 により、ドメイン 2 のアプリが提供されます
したがって、各 IP アドレスを同じものとして扱っています。