我在配置 Nginx 以重定向到 CentOS 7 上的两个不同的 Web 应用程序时遇到了麻烦。
我在 Node.js 上运行了 2 个 Web 应用程序。第一个在端口 1000 上运行的应用程序 A 具有域www.domainA.example
,在端口 2000 上运行的应用程序 B 具有域www.domainB.example
。两个域都有单独的 SSL 证书。
因为我有一个专用 IP,所以我需要根据通过浏览器访问的主机将流量重定向到一个或另一个应用程序。
这是我的 nginx 配置文件:
server {
listen 80;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name *.domainA.example domainA.example;
ssl_certificate /path/to/certificateA.pem;
ssl_certificate_key /path/to/certificateA.key;
ssl on;
location / {
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;
proxy_pass http://127.0.0.1:1000;
proxy_redirect http://127.0.0.1:1000 https://domain1.com;
}
}
server {
listen 443;
server_name *.domainB.example domainB.example;
ssl_certificate /path/to/certificateB.crt;
ssl_certificate_key /path/to/certificateB.key;
ssl on;
location / {
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;
proxy_pass http://127.0.0.1:2000;
proxy_redirect http://127.0.0.1:2000 https://domainB.com;
}
}
当我尝试在浏览器中连接时,www.domainA.example
它只给了我一个 502 Bad Gateway Nginx 页面。虽然当我访问时www.domainB.example
它会被重定向到,https://www.domainA.example
但仍然显示错误(无法连接;无法与服务器建立连接)。
我还尝试了不同的 nginx 配置,在端口 443 上运行应用程序 B。这样,B 应用程序可以工作,但 A 应用程序也会重定向到应用程序 B,即使我将 proxy_pass 设置为正确的端口。
关于如何修复此问题,有什么提示吗?