gpt4 book ai didi

linux - 为什么 Node.js 作为后端 Node.js 应用程序的代理,而不是 Nginx?

转载 作者:太空宇宙 更新时间:2023-11-04 09:27:20 25 4
gpt4 key购买 nike

我有一个简单的nginx配置文件

server {
listen 80 default_server;
listen [::]:80 default_server;
server_name ec2-x-x-x-x.compute-1.amazonaws.com;
#root /home/ec2-user/dashboard;

# Load configuration files for the default server block.
# include /etc/nginx/default.d/*.conf;
location / {
proxy_pass http://127.0.0.1:4000;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

但是当我发送请求时,它说它无法访问服务器。

虽然服务器在端口 4000 上工作正常,sudo netstat -tulpn 给了我这个

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 6512/nginx: master
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1640/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1247/master
tcp6 0 0 :::80 :::* LISTEN 6512/nginx: master
tcp6 0 0 :::22 :::* LISTEN 1640/sshd
tcp6 0 0 :::3000 :::* LISTEN 15985/node
tcp6 0 0 ::1:25 :::* LISTEN 1247/master
tcp6 0 0 :::4000 :::* LISTEN 3488/node
udp 0 0 0.0.0.0:68 0.0.0.0:* 484/dhclient
udp 0 0 127.0.0.1:323 0.0.0.0:* 451/chronyd
udp 0 0 0.0.0.0:1510 0.0.0.0:* 484/dhclient
udp6 0 0 ::1:323 :::* 451/chronyd
udp6 0 0 :::1458 :::* 484/dhclient

另外,当我使用 node 作为代理服务器时

var http = require('http'),
httpProxy = require('http-proxy');
httpProxy.createProxyServer({target:'http://localhost:4000'}).listen(80);

这很好用。

关于我做错了什么有什么想法吗?

最佳答案

感谢有用的 netstat 输出。看来问题是您的 Node.js 应用仅在 IPv6 上监听,如输出中的 :::* 所示。

Nginx 正在尝试通过 IPv4 连接它,但它没有在监听。

您的 Node.js 代理可能有效,因为它在两端都有相同的问题。 :)

您没有分享您使用的是哪个 Node.js 版本。 Some versions had an issue where attempting to set up an IPv4 connection would result in an IPv6 connection .要么您遇到了这样的错误,要么您的 Node.js 应用程序实际上配置错误以监听 IPv6。

如果端口 400 上的 Node.js 应用已正确配置为监听 IPv4,您将在 netstat 输出中看到此类条目:

tcp        0      0 127.0.0.1:4000      0.0.0.0:*       LISTEN      12345/node   

关于linux - 为什么 Node.js 作为后端 Node.js 应用程序的代理,而不是 Nginx?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34904572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com