一、检查ip/port是否正确
首先,当nginx连接被拒绝时,我们需要确认我们所请求的ip/port是正确的。 如果您使用的是域名,请确保您的DNS设置是正确的,并且指向了正确的ip地址。
location / { proxy_pass http://localhost:3000/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
在上面的示例代码中,proxy_pass指令后的ip地址和port就是我们需要检查的部分。
二、查看是否启动了对应的服务
如果ip/port地址正确无误,可以检查一下您需要代理的服务是否启动。 如果您需要代理的服务没有启动,那么nginx将无法连接到该服务, 因此将会出现"nginx连接被拒绝"的错误。
sudo systemctl status my-app.service
使用systemctl指令来查看您需要代理的服务是否正在运行。
三、检查防火墙规则
如果您的ip/port地址正确,您要代理的服务也已经启动,可能问题就出现在防火墙。 如果您的服务器启用了某种防火墙功能,它可能会阻止nginx连接到对应的服务。
sudo ufw app list
使用ufw来检查防火墙服务列表,确认要代理的服务端口是开启的。
四、更改nginx配置文件
如果以上三个方面都检查正确,您可以尝试更改nginx配置文件, 例如增加连接超时时间等指令来解决"nginx连接被拒绝"的问题。
server { … proxy_connect_timeout 600; proxy_send_timeout 600; proxy_read_timeout 600; … }
在上面的示例代码中,我们使用proxy_connect_timeout,proxy_send_timeout和proxy_read_timeout来增加连接的超时时间。