这个问题排查了一晚上,配置怎么改都无效。原本以为错误信息在控制台就能告诉我们,但有些错误信息它都放在日志。查看了日志才发现是没有权限引起的。
这种情况一般是防火墙引起的。可以临时关闭防火墙测试一下
输入如下命令
setenforce 0
如果您使用的是SELinux作为安全模块,并且通过临时关闭SELinux (setenforce 0
) 可以使Nginx连接到上游服务器,那么您可以通过以下步骤来设置SELinux以允许特定端口和地址:
-
检查SELinux状态:首先,检查SELinux的状态以确保它正在运行。运行以下命令检查SELinux的状态:
sestatus
如果SELinux处于Enforcing模式,请继续以下步骤。如果SELinux处于Permissive模式,表示它已被禁用,您无需进行任何更改。
-
允许端口和地址:要允许特定的端口和地址连接,可以使用
semanage
命令或semanage
工具来添加SELinux策略。首先,安装policycoreutils-python
软件包(如果尚未安装):sudo yum install policycoreutils-python
-
添加SELinux策略:使用以下命令添加一个新的SELinux策略,允许Nginx连接到上游服务器的IP地址和端口:
sudo semanage port -a -t http_port_t -p tcp 8060
将
8060
替换为您希望允许的端口号。 -
验证设置:最后,您可以运行以下命令验证SELinux策略是否正确添加:
sudo semanage port -l | grep 8060
这将显示已添加的端口策略。
完成上述步骤后,您应该能够让Nginx连接到上游服务器的IP地址和端口,而无需临时禁用SELinux