【发布时间】:2012-11-23 04:08:38
【问题描述】:
我在 aws 上有三个实例。一个用于前端服务器的nginx,以及两个后端nodejs实例。
我正在尝试将 nginx 服务器设置为这些 node.js 实例的上游:
upstream node_servers {
server private_ip:8124 weight=10 max_fails=3; // node server 1 private_ip:port
server private_ip:8124 weight=10 max_fails=3; // node server 2 private_ip:port
}
server {
listen private_ip:80; // nginx server private ip:port
root /home/ubuntu/project/;
server_name public_ip.eu-west-1.compute.amazonaws.com; // nginx public DNS
location / {
try_files $uri $uri/ /index.html;
proxy_pass http://node_servers/;
}
}
在我的节点 1 服务器上,节点 2 服务器实例 app.js 代码:
app.listen(8124, "127.0.0.1");
console.log("listening on 8124");
我去nginx服务器公共域名,并没有真正发生任何事情,它只是永远加载发送请求.....
【问题讨论】:
-
您需要定位您的问题:您应该登录到您的前端服务器并尝试 curl 节点实例:
curl http://IP:8124,这应该会返回一些内容。如果不检查您的 iptables 或尝试像 80 或 8080 这样的标准 http 端口。如果您得到回报,那么您可以先尝试上游到一台服务器。还要检查你的 nginx 日志,看看那里是否有任何有用的东西。 -
curl: (52) 来自服务器的空回复,这是我得到的?
-
你试过设置节点端口为80吗?您的防火墙是否阻止请求?您的节点服务器是否仍绑定到 localhost (127.0.0.1)?
标签: node.js nginx load-balancing reverse-proxy