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

        因为项目需要,要使用nginx实现反向代理,但是在部署中发现出现了502错误代码,经排查是centos7中的selinux造成的。

0、相关环境

        centos:7.0

        nginx:1.8.1

        selinux为系统自带

1、错误现象

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

2、nginx启动不了的解决

        项目中使用的时候是根据需要临时启动nginx的,发现nginx起不来,发现将selinux关闭之后就起得来了,所以应该是selinux造成的,但是不能关闭selinux,那样做太粗暴了!

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

semanage port -a -t http_port_t -p tcp 9993

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

        如果系统提示没有对应的命令需要使用下面的命令安装:

yum install policycoreutils-python

3、nginx启动之后502的解决

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

        经查询,也是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

4、结论

        本文记录的是centos 7 中因为selinux导致程序端口起不来和被拒绝的解决,虽然演示的是nginx以及9993端口,但是对于其他的程序和端口也是一样的,只需要对应着修改就行啦。

        enjoy!!

转载于:https://my.oschina.net/songxinqiang/blog/636241

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值