Oracle Linux 8上Nginx代理Express(EJS)应用出现502 Bad Gateway问题
502 Bad Gateway 问题原因及解决方法
核心原因是SELinux 阻止了Nginx进程连接本地3000端口。从Nginx错误日志里的这条关键信息可以确认:
connect() to 127.0.0.1:3000 failed (13: Permission denied)
Oracle Linux 8默认开启SELinux强制模式,默认规则下不允许Nginx这类httpd相关进程发起网络连接(包括本地回环端口)。
解决步骤:
确认SELinux状态:
sestatus如果输出显示
SELinux status: enabled且Current mode: enforcing,说明处于强制拦截状态。永久允许Nginx发起网络连接:
setsebool -P httpd_can_network_connect 1其中
-P参数确保重启系统后设置依然生效,不加则仅临时有效。验证设置是否生效:
getsebool httpd_can_network_connect返回
httpd_can_network_connect --> on即为设置成功。重启Nginx服务:
systemctl restart nginx
补充说明:
日志中第一条open() "/usr/share/nginx/html/.env" failed是无关请求,属于外部扫描行为,和当前502问题没有关联,可以忽略。
内容的提问来源于stack exchange,提问作者aixgoa
相关产品推荐
相关产品推荐

