自学内容网 自学内容网

Nginx转发请求错误

说明:记录一次使用Nginx转发请求的错误;

场景

公司内部有两台服务器都跑了后端项目,在使用Nginx做请求分发时,我发现其中有台服务器一直没有处理请求(没打印相关的日志信息),于是我修改了下Nginx的配置,让请求只转发到这台服务器上,发现前端项目报错,无法处理请求。

排查

首先排查了是不是程序报错了,使用java -jar手动启动了项目,发现没得问题,控制台没有打印错误信息。于是,我去查看Nginx的日志信息,发现以下日志信息;

 [error] 15740#0: *731 connect() failed (113: No route to host) while connecting to upstream,

在这里插入图片描述

解决

这台跑后端项目的服务器,防火墙没有开放端口,即server.port。Nginx将请求转发过来时,被防火墙拦截住了。可敲下面的命令查看、开放端口,设置完后刷新防火墙配置生效。

# 查看防火墙允许的端口
sudo firewall-cmd --list-ports

# 设置防火墙允许访问的端口,如3306
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent

# 刷新防火墙配置
sudo firewall-cmd --reload

需要移除防火墙开放端口,敲下面的命令,同样,设置完需刷新防火墙配置才能生效;

# 移除防火墙开放的某端口,如22
sudo firewall-cmd --zone=public --remove-port=22/tcp --permanent

当然,也可以直接关闭防火墙,相关命令如下:

# 查看防火墙状态
systemctl status firewalld

# 开启防火墙
systemctl start firewalld

# 关闭防火墙
systemctl stop firewalld

原文地址:https://blog.csdn.net/qq_42108331/article/details/137672764

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!