一、问题背景
在使用nginx基于域名转发时,发现通过curl可以请求成功,但是通过外网域名访问无法访问通,通过日志查询发现如下问题
2023/09/18 11:26:18 [crit] 11981#11981: *106 connect() to 127.0.0.1:12500 failed (13: Permission denied) while connecting to upstream, client: 104.183.94.113, server: api.mogu.com, request: "GET /api/book/info HTTP/1.1", upstream: "http://127.0.0.1:12500/api/book/info", host: "api.mogu.com"
发现基于nginx的请求转发被拒,经查询/var/log/nginx/error.log
,发现是selinux进行了拦截。
二、什么是selinux
请参考:
什么是selinux
三、解决方案
#非关闭selinux方式:
# 针对httpd请求处理或转发容器进行网络许可
setsebool -P httpd_can_network_connect 1
更多配置可以参考:
selinux官网文档