我尝试使用Iframely。我在我的服务器ubuntu + nginx上安装自托管版本: https://iframely.com/docs/host
当我像这样启动节点时:
# node server
Iframely运作良好
否则,我得到502错误的网关错误。
在日志错误中:
2016/01/25 06:06:58 [error] 13265#0: *4476 connect() failed (111: Connection refused) while connecting to upstream, client: xx:xx:xx:xx:xx:xx, server: iframely.custom.com, request: "GET /iframely?url=http://coub.com/view/2pc24rpb HTTP/1.1", upstream: "http://127.0.0.1:8061/iframely?url=http://coub.com/view/2pc24rpb", host: "iframely.custom.com"
当我尝试:
# curl -i 127.0.0.1:8061/iframely?url=http://coub.com/view/2pc24rpb
确认错误:
curl: (7) Failed to connect to 127.0.0.1 port 8061: Connection refused
我从节点开始,我明白可能node.js没有侦听端口8061.
当我尝试:
netstat -pantu
我没有看到有问题的端口,但其他像这样的其他node.js应用程序使用的端口完美运行:
tcp6 0 0 127.0.0.1:4567 127.0.0.1:60724 ESTABLISHED 12329/node
我的主机配置:
upstream iframely.custom.com {
ip_hash;
server localhost:8061;
keepalive 8;
}
server {
listen 80;
listen [::]:80;
server_name iframely.custom.com;
root /usr/share/nginx/html/iframely.custom.com;
# Logs
access_log /var/log/iframely.access_log;
error_log /var/log/iframely.error_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-NginX-Proxy true;
proxy_pass http://iframely.custom.com/;
proxy_redirect off;
# Socket.IO Support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
# Exclude from the logs to avoid bloating when it's not available
include drop.conf;
}
我试图更改配置localhost for 127.0.0.1,但它不会改变任何内容。
如何使node.js应用程序保持活动状态:我必须永远重启吗? 这可能是ipv4或ipv6的问题吗?
我在serverfault上发布这个问题因为我认为这是nginx配置的问题。但有人认为我错了。
提前感谢您的帮助。 JB
答案 0 :(得分:1)
首先,你应该让节点应用程序监听端口8061,它应该显示在“netstat -tpln”中,例如:
tcp 0 0 127.0.0.1:8061 0.0.0.0:* LISTEN 21151/node
其次,你应该用curl测试它。如果采取了响应,则节点服务器可以正常工作。
最后,将焦点转移到nginx。
答案 1 :(得分:1)
只有一个后端,使用upstream
模块没有任何好处。您可以删除upstream
部分并更新proxy_pass
行,如下所示:
proxy_pass http://127.0.0.1:8061/;
后端也可能正在侦听IP,但是没有响应名称“localhost”。这不太可能,但可能。但它必须侦听某些IP地址,因此使用IP地址更安全。
弗拉迪斯拉夫的上述建议也很好。
答案 2 :(得分:0)