0

我有两个与我的 VPS 关联的 IP,并且正在尝试将其设置为服务两个节点应用程序。这是我的配置:

在 /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 给了我 domain1 的应用程序

IP1.xxx.xxx.xxx:3000 给了我 domain2 的应用程序

IP2.xxx.xxx.xxx:4000 给了我 domain1 的应用程序

IP2.xxx.xxx.xxx:3000 给了我 domain2 的应用程序

因此,它将每个 IP 地址视为相同。

4

1 回答 1

0

server_name只接受域但不接受 IP 地址。

您在代理标头中有拼写错误,请更改:

proxy_set_header X-Nninx-Proxy true;

有了这个:

proxy_set_header X-NginX-Proxy true;
于 2013-06-28T15:56:27.843 回答