1、问题描述
访问 http://10.107.174.143:4007 返回 HTTP 403 Forbidden。
配置:
Nginx 监听 4007 端口,将前端静态资源根目录指向 /systemdata/shaJingApiweb,该目录下 index.html 存在且文件权限正常(755/644),访问静态资源的时候还是返回403。
2、原因分析:
SELinux(Security-Enhanced Linux) 是 Linux 内核的一个安全模块,由美国国家安全局(NSA)开发。
它的核心思想是 "最小权限原则":即使一个进程用 root 运行,它也只能访问被明确授权的资源。
/systemdata/shaJingApiweb 目录为手动创建,SELinux 未自动为其打上 httpd_sys_content_t 标签,导致 Nginx 进程(类型为 httpd_t)无权限读取该目录下的文件,返回 403。
3、 解决方案:
第一步:临时关闭验证
csharp
bashsetenforce 0
然后马上访问 4007 测试,如果页面正常了,继续第二步。
第二步:永久修复(不要直接关闭 SELinux)
csharp
bashchcon -R -t httpd_sys_content_t /systemdata/shaJingApiweb
然后重新开启 SELinux 再测试:
csharp
bashsetenforce 1