CentOS 7中nginx反向代理由于selinux出现错误的解决办法

        由于项目须要,要使用nginx实现反向代理,可是在部署中发现出现了502错误代码,经排查是centos7中的selinux形成的。python

0、相关环境

        centos:7.0linux

        nginx:1.8.1nginx

        selinux为系统自带shell

一、错误现象

        有两个现象:①nginx起不来(项目中是须要临时启动nginx的);②启动以后代理出现502错误。centos

二、nginx启动不了的解决

        项目中使用的时候是根据须要临时启动nginx的,发现nginx起不来,发现将selinux关闭以后就起得来了,因此应该是selinux形成的,可是不能关闭selinux,那样作太粗暴了!tcp

        经查询,须要使用下面的命令,将对应的端口添加进selinux的容许列表中:centos7

semanage port -a -t http_port_t -p tcp 9993

        这个命令执行起来须要的时间比较长,请耐心等待。
spa

        若是系统提示没有对应的命令须要使用下面的命令安装:代理

yum install policycoreutils-python

三、nginx启动以后502的解决

        好不容易将nginx启动以后,又发现根本不能访问被代理的内容,报告的是502错误。code

        经查询,也是selinux形成的!

        使用这个命令就能够查看相关的信息了:

cat /var/log/audit/audit.log | grep nginx | grep denied

        一样的,咱们能够将这个信息制做位selinux的一个模块性质的东西,将其导入selinux,而后就能够解决问题了:

cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx

        这个命令会在当前目录生成两个文件:

mynginx.pp
mynginx.te

        这两个文件就是咱们须要的,执行命令就能够将其导入了:

semodule -i mynginx.pp

        一样,这个命令也会等待一段时间,在其余的机器上导入这个模块也会获得相同的效果,将对应的端口添加进selinux

四、结论

        本文记录的是centos 7 中由于selinux致使程序端口起不来和被拒绝的解决,虽然演示的是nginx以及9993端口,可是对于其余的程序和端口也是同样的,只须要对应着修改就行啦。

        enjoy!!

相关文章
相关标签/搜索