我有两个与我的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地址视为相同。
答案 0 :(得分:0)
server_name
只接受域而不接受IP地址。
您在代理标头中出现拼写错误,请更改:
proxy_set_header X-Nninx-Proxy true;
用这个:
proxy_set_header X-NginX-Proxy true;