在使用 yum 安装 nginx 后可能会出现配置完成后却无法访问的问题,查看 audit.log 会发现类似于以下的错误信息
出现此问题的原因是 SELinux 基于最小权限原则默认拦截了 Nginx 的请求,SELinux 是 Linux 的安全子系统,提供更安全的访问控制,许多运维人员嫌麻烦可能会直接关闭此组件,但是治标不治本,本文演示在启用 SELinux 基础上完成对 Nginx 请求的放行。
[root@centos-server-02 local]# sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: enforcing
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 31
临时关闭 SELinux:setenforce 0
临时启动 SELinux:setenforce 1
永久关闭/启动:修改/etc/sysconfig/selinux
后重启系统
[root@centos-server-01 audit]# setsebool -P httpd_can_network_connect 1
*.pp
和*.te
文件,如果该服务器上的服务未被访问过,此命令执行无效。[root@centos-server-01 audit]# ausearch -c ‘nginx‘ --raw | audit2allow -M my-nginx
[root@centos-server-01 audit]# semodule -i my-nginx.pp
原文:https://www.cnblogs.com/aotian/p/13222134.html