您的位置:

nginx连接被拒绝的解决方法

一、检查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来增加连接的超时时间。