Nginx 本地代理转发请求 502 Bad Gateway
问题
在使用 yum 安装 nginx 后可能会出现配置完成后却无法访问的问题,查看 audit.log 会发现类似于以下的错误信息
原因
出现此问题的原因是 SELinux 基于最小权限原则默认拦截了 Nginx 的请求,SELinux 是 Linux 的安全子系统,提供更安全的访问控制,许多运维人员嫌麻烦可能会直接关闭此组件,但是治标不治本,本文演示在启用 SELinux 基础上完成对 Nginx 请求的放行。
解决方案
1、首先我们需要确认 SELinux 的运行状态,当然出现此问题肯定是运行中。
临时关闭 SELinux:setenforce 0
临时启动 SELinux:setenforce 1
永久关闭/启动:修改/etc/sysconfig/selinux后重启系统
2、开启HTTP
setsebool -P httpd_can_network_connect 1
3、分析现有日志并生成关联模块,执行完此命令可以看到在当前目录下会生成后缀为.pp和.te文件,如果该服务器上的服务未被访问过,此命令执行无效。
ausearch -c 'nginx' --raw | audit2allow -M my-nginx
4、加载前一步生成的模块内容
semodule -i my-nginx.pp
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示