【Linux】生产环境下解决Nginx 403 被selinux阻止访问的问题
最近在Centos7.6上部署Nginx时,发现访问网站时报出403错误。
经排查,可以排除以下几点原因:
1.启动用户问题。已确认nginx.cnf中配置的用户是root,nginx服务的启用项也是root。
2.路径不正确,找不到路径下的index.html文件的问题。经过反复确认,路径是正确的。
剩下就是要排查是否是selinux的问题了。
先用setenfoce 0
临时关闭SELinux,然后发现网站可以正常访问了,由此基本可以确认是SELinux的问题。
虽然setenfoce 0
临时关闭SELinux可以让网站正常访问,但毕竟治标不治本,生产环境下用这种方式很容易造成系统漏洞,因此需要在开启SELinux的基础上对nginx放行。
1.允许http访问
setsebool -P httpd_can_network_connect 1
2.分析现有日志并生成关联模块,执行完此命令可以看到在当前目录下会生成后缀为*.pp
和*.te
文件,如果该服务器上的服务未被访问过,此命令执行无效>
ausearch -c 'nginx' --raw | audit2allow -M my-nginx
3.加载前一步生成的模块内容
semodule -i my-nginx.pp
4.执行完以上步骤后网站可以正常访问。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?