设置请求转发之后,重启不了nginx服务器,具体原因在配置nginx.conf配置文件时,新增加了一个服务定义了一个端口号,然后便关闭nginx服务,当我再次启动时,发现启动失败。

项目背景:自己网上找了一个项目,在部署请求转发时,发生的问题。

首先错误原因:

Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details.

这里给出的提示是让我们去在systemctl status nginx.service 或者jornalctl -xe查看错误日志:

进行查看:

设置请求转发之后,重启不了nginx服务器,具体原因在配置nginx.conf配置文件时,新增加了一个服务定义了一个端口号,然后便关闭nginx服务,当我再次启动时,发现启动失败。_第1张图片

这里要注意倒数第九行给出的提示:

设置请求转发之后,重启不了nginx服务器,具体原因在配置nginx.conf配置文件时,新增加了一个服务定义了一个端口号,然后便关闭nginx服务,当我再次启动时,发现启动失败。_第2张图片

具体意思就是:如果你认为nginx应该被允许在9001端口tcp_socket上进行name_bind访问。

那你应该报告这个bug。

您可以生成一个本地策略模块来允许此访问。

在这之前我也在网上搜索了一下相关问题,其中有一个同学也遇到了这个问题并且他解决了,大致的问题原因是:把httpd的端口改为一个自定义的端口,结果修改后,httpd启动失败。查看syslog发现报错:SELinux is preventing /usr/sbin/httpd from name_bind access on the tcp_socket port 也就是被SELinux拦截了。

有一个问题就是他给出的解决方案,只有上文没有下文,设置好了自定义端口之后还需要输入一些命令才能解决

解决方法:

第一步:semanage port -a -t http_port_t -p tcp 5060  //5060 是你nginx.conf中定义的端口号,这里我定义的端口号是9001

 第二步:grep nginx /var/log/audit/audit.log | audit2allow -M mypol

第三步:semodule -i mypol.p

再次重启nginx就可以成功了(本人的是成功了)

你可能感兴趣的:(linux,nginx,服务器)