【发布时间】:2015-05-15 00:39:13
【问题描述】:
我有两个节点 js 应用程序在同一个盒子上运行,我希望它为所有路由运行第一个节点 js 应用程序,除非 URL 是 www.domain.com/blog 以转到另一个节点.js 应用程序。这甚至可以通过这种设置实现,还是我必须设置子域并使用 nginx 或其他东西?
【问题讨论】:
-
是的,这很可能使用反向代理。
我有两个节点 js 应用程序在同一个盒子上运行,我希望它为所有路由运行第一个节点 js 应用程序,除非 URL 是 www.domain.com/blog 以转到另一个节点.js 应用程序。这甚至可以通过这种设置实现,还是我必须设置子域并使用 nginx 或其他东西?
【问题讨论】:
您可以使用 nginx 作为反向代理来实现这一点。
假设您的博客节点进程在端口 3000 上运行,另一个节点进程在 3001 端口上运行,一个简单的配置如下所示;
upstream blog {
server 127.0.0.1:3000;
}
upstream other {
server 127.0.0.1:3001;
}
server {
listen 80;
server_name www.domain.com;
location /blog {
proxy_pass http://blog;
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header X-Real-IP $proxy_protocol_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto tcp;
proxy_set_header X-NginX-Proxy true;
}
location / {
proxy_pass http://other;
proxy_http_version 1.1;
proxy_set_header Host $http_host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header X-Real-IP $proxy_protocol_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto tcp;
proxy_set_header X-NginX-Proxy true;
}
}
【讨论】:
upstream设置正确了吗?