CentOS9上Nginx反向代理Docker容器触发500错误(权限拒绝)求助
CentOS9上Nginx反向代理Docker容器触发500错误(权限拒绝)求助
兄弟,我一眼就从你贴的日志里抓到核心问题了——connect() to 10.0.100.6:8080 failed (13: Permission denied),这在CentOS 9上几乎都是SELinux的限制导致的,毕竟CentOS默认会开启强制模式的SELinux,它会阻止Nginx这类服务主动发起网络连接到后端端口。
给你一步步解决的方案:
第一步:先验证是不是SELinux的问题
先临时关闭SELinux做测试(只是临时验证,别长期关,SELinux是重要的安全防护):
sudo setenforce 0
执行完之后再访问你的反向代理地址,如果能正常打开,那就实锤是SELinux的锅了。
第二步:永久解决(不用关闭SELinux)
给Nginx添加允许发起网络连接的SELinux权限,这个设置是永久生效的:
sudo setsebool -P httpd_can_network_connect on
然后重启Nginx让设置生效:
sudo systemctl restart nginx
这时候再访问应该就能正常反向代理到你的Docker容器了。
额外小提醒
我注意到你有两个Nginx server块都监听80端口(默认的/etc/nginx/nginx.conf里的server,还有/etc/nginx/conf.d/nextcloud.conf里的server),虽然Nginx会按规则匹配,但最好统一一下配置,比如把默认server块的server_name改成特定域名或者_,避免潜在的冲突,不过这不是当前500错误的直接原因,先搞定权限问题再说~
备注:内容来源于stack exchange,提问作者naseweis
相关产品推荐
相关产品推荐

