Node.js Nginx拒绝在AWS EC2上连接

Node.js Nginx拒绝在AWS EC2上连接,node.js,nginx,amazon-ec2,reverse-proxy,Node.js,Nginx,Amazon Ec2,Reverse Proxy,我正在尝试使用nginx来设置一个简单的node.js服务器,我正在后台端口4000上运行服务器,我的nginx配置文件是 server { listen 80; listen [::]:80; server_name 52.53.196.173; location / { include /etc/nginx/proxy_params; proxy_pass http://127.0.0.1:4000; } } 我将其保存在/etc/nginx/sites

我正在尝试使用nginx来设置一个简单的node.js服务器,我正在后台端口4000上运行服务器,我的nginx配置文件是

server {
  listen 80;
  listen [::]:80;
  server_name 52.53.196.173;
  location / {
    include /etc/nginx/proxy_params;
    proxy_pass http://127.0.0.1:4000;
  }
}
我将其保存在/etc/nginx/sites available中,并将其符号链接到sites enabled,nginx.conf文件的include行已经启用,可以从sites加载文件,然后我使用 sudo服务nginx重启 我尝试去52.53.196.173,但它拒绝连接,但是去52.53.196.173:4000,端口4000正常工作,但我尝试让它使用nginx在端口80上侦听,我尝试将我的.ml域作为服务器名称,但没有运气,我在域dns设置中将IP 52.53.196.173作为A记录,我在AWS EC2实例Ubuntu服务器16.04上做这件事,我甚至尝试了完整的EC2公共dns url不走运,有什么想法吗


编辑:我通过在启用的站点中直接移动文件来解决问题,而不是使用符号链接

,很可能您的安全组中没有打开端口80,或者nginx没有运行以接受连接。请发布nginx状态并检查安全组

很可能您的安全组中没有打开端口80,或者nginx没有运行以接受连接。请发布nginx状态并检查安全组

几乎没有可能的事情。首先,您需要验证nginx服务器是否在端口80上运行和侦听。您可以使用以下命令检查侦听端口

netstat -tunlp
然后,您需要检查服务器防火墙以及selinux策略。(或禁用selinux进行测试)

然后,您需要验证AWS安全组是否配置为访问端口80上的http/https连接

PS:以下命令和配置的输出将有助于故障排除

netstat -tunlp
sestatus
iptables -L

* AWS Security Group Rules
* Nginx configurations ( including main configuration if changed )

备注:OP通过将配置文件直接移动到启用站点的目录中修复了这个问题。如果你有同样的问题,也许可以将评论内容冷藏起来以获取更多信息。

几乎没有可能的事情。首先,您需要验证nginx服务器是否在端口80上运行和侦听。您可以使用以下命令检查侦听端口

netstat -tunlp
然后,您需要检查服务器防火墙以及selinux策略。(或禁用selinux进行测试)

然后,您需要验证AWS安全组是否配置为访问端口80上的http/https连接

PS:以下命令和配置的输出将有助于故障排除

netstat -tunlp
sestatus
iptables -L

* AWS Security Group Rules
* Nginx configurations ( including main configuration if changed )


备注:OP通过将配置文件直接移动到启用站点的目录中修复了这个问题。如果您有相同的问题,也许可以将注释保存以获取更多信息。

Ports r很好,当我第一次安装nginx时,加载了默认的配置欢迎页面,但当我删除它并添加自己的页面时,它现在不起作用。当您通过在url中键入ip地址请求页面时,请在端口80上使用tcpdump进行测试。这将告诉您请求是否到达服务器的端口80
tcpdump-i eth0'port 80'
其中eth0是服务器上的以太网卡接口。如果您在shell提示符中键入ifconfig,它将为您提供以太网卡的名称,则我不知道以太网卡是什么。。通常它总是eth0I做了tcpdump的事情,是的,我确实收到了一些packetsPorts r罚款,当我第一次安装nginx默认配置欢迎页面加载,但当我删除它,并添加了我自己的它不工作,现在做一个测试使用tcpdump端口80时,你请求的网页在url中键入ip地址。这将告诉您请求是否到达服务器的端口80
tcpdump-i eth0'port 80'
其中eth0是服务器上的以太网卡接口。如果您在shell提示符中键入ifconfig,它将为您提供以太网卡的名称,则我不知道以太网卡是什么。。通常它总是eth0I做了tcpdump的事情,是的,我收到了一些packetsnetstat输出AWS安全组,我没有接触主nginx配置(nginx.conf),似乎在端口80上没有监听任何内容。您可以发布特定应用程序的nginx配置吗?nginx服务的服务状态?对于sudo服务nginx状态的输出,以及“特定应用程序的配置”是什么意思?我发布了我在问题中使用的nginx文件。您是否删除了nginx.conf文件?您可以发布nginx.conf吗?我在评论后看到了您的应用程序特定配置位。抱歉,我的错误:/netstat输出AWS安全组我没有接触主nginx配置(nginx.conf),端口80上似乎没有任何侦听内容。您可以发布特定应用程序的nginx配置吗?nginx服务的服务状态?对于sudo服务nginx状态的输出,以及“特定应用程序的配置”是什么意思?我发布了我在问题中使用的nginx文件。您是否删除了nginx.conf文件?您可以发布nginx.conf吗?我在评论后看到了您的应用程序特定配置位。对不起,我的错:/