解决办法:[ Nginx ] 5932#0: *18 connect() failed (113: No route to host) while connectin

当尝试通过Nginx访问CentOS或红帽服务器时遇到'Noroutetohost'错误,通常是因为防火墙未开启相应端口。解决方案包括关闭防火墙或添加端口到白名单。推荐方法是使用防火墙-cmd命令永久开启80和443端口,并使用'firewall-cmd --reload'命令使更改生效。此外,可以按此方式为其他如1521、3306等端口添加白名单。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

Nginx 访问CentOS或者红帽子服务器ip时候出现如下错误

[error] 5932#0: *15 connect() failed (113: No route to host) while connecting to upstream

在这里插入图片描述


分析原因

发生该错误的根本原因是防火墙白名单端口没有开启。


解决办法

解决办法1

直接关闭防火墙(不推荐

该种方法应该是有一部分人这么操作,会强制关闭防火墙,对于安全性很明显这是不好的做法,如果你喜欢就上来关闭操作防火墙可以直接按照如下命令关闭防火墙。

# 1:查看防火状态
systemctl status firewalld

# 2:暂时关闭防火墙
systemctl stop firewalld

# 3:永久关闭防火墙
systemctl disable firewalld

# 4:重启防火墙
systemctl enable firewalld

解决方法2

增加白名单端口到防火墙(推荐

# 依次执行命令,打开80(http)和443(https)端口
sudo firewall-cmd --permanent --zone=public --add-port=80/tcp
sudo firewall-cmd --permanent --zone=public --add-port=443/tcp

sudo firewall-cmd --reload  		# 注意:添加端口后,必须用命令firewall-cmd --reload重新加载一遍才会生效

sudo firewall-cmd --list-port		# 查看已经添加到白名单端口号

再次通过网页访问nginx所在的ip地址,可以看到访问欢迎页成功
在这里插入图片描述


扩展

在防火墙操作中,你同样可以利用方法2添加数据库端口1521、3306或者其他想要添加的端口到白名单中

sudo firewall-cmd --permanent --zone=public --add-port=1521/tcp
sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp

另外打开80或者443端口的时候也可以利用服务来添加

# 添加http和https服务到防火墙白名单中
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https

# 查看已经添加到白名单端口号或者服务
sudo firewall-cmd --list-port			# 查看端口
sudo firewall-cmd --list-service		# 查看服务
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bluetata

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值