Ubuntu下Nginx反向代理访问.NET API报ERR_CONNECTION_REFUSED如何解决
ERR_CONNECTION_REFUSED错误排查解决步骤
- 第一步:修复Nginx站点配置监听错误
你当前的Nginx站点配置存在端口监听不一致问题,IPv4监听80端口,IPv6错误监听了8080端口,会导致IPv6用户访问80端口直接被拒绝,将配置修改为:
修改完成后执行server { listen 80 default_server; listen [::]:80 default_server; root /var/www/servicos.siteabc.org; server_name servicos.siteabc.org; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; location / { proxy_redirect off; 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 http://localhost:5000; } }nginx -t验证配置语法合法,再执行systemctl reload nginx重载配置生效。 - 第二步:验证端口监听状态
执行以下命令确认服务端口监听正常:- 验证Nginx是否监听公网80端口:
ss -tulpn | grep nginx,输出需包含0.0.0.0:80和[::]:80 - 验证.NET服务是否正常监听本地5000端口:
ss -tulpn | grep 5000,输出需包含127.0.0.1:5000
- 验证Nginx是否监听公网80端口:
- 第三步:本地连通性测试
在服务器本地执行以下命令,逐层验证服务可用性:- 测试后端API可用性:
curl http://localhost:5000,确认能正常返回API响应 - 测试Nginx反代可用性:
curl http://127.0.0.1 -H "Host: servicos.siteabc.org",确认能正常返回API响应
- 测试后端API可用性:
- 第四步:检查防火墙与安全组规则
- 执行
ufw status查看Ubuntu本地防火墙规则,确认80端口入站已放行,未放行则执行ufw allow 80/tcp - 若为云服务器,需登录云厂商控制台检查实例安全组规则,放行80端口的入站流量,源地址设置为
0.0.0.0/0和::/0
- 执行
- 第五步:验证DNS解析
在访问失败的客户端设备上执行nslookup servicos.siteabc.org,确认返回的IP地址与服务器公网IP一致,解析错误则修改域名解析记录。 - 第六步:排除访问路径错误
确认浏览器访问时使用的是http://servicos.siteabc.org,若误输入https://前缀会访问443端口,而你当前未配置HTTPS监听,也会触发连接拒绝错误。
内容的提问来源于stack exchange,提问作者Leandro
相关产品推荐
相关产品推荐

