我们在 Nginx 配置反向代理后,可能会出现如下报错:

  • 502 Bad Gateway
  • (13: Permission denied) while connecting to upstream
  • Sorry, the page you are looking for is currently unavailable.<br />Please try again later.

这些错误,一般是由 SELinux 引起的(https://stackoverflow.com/questions/23948527/13-permission-denied-while-connecting-to-upstreamnginx)。
原因是,我们的 Linux 操作系统的 httpd 服务没有开启 httpd_can_network_connect 配置项,该配置项用于控制服务器是否可以连接到网络上的其他服务器,在 Nginx 配置反向代理后,我们访问 Nginx 所在的服务器,其要将请求反向代理到真正请求的服务器,此时需要 Nginx 所在的服务器发送 http 网络请求连接到网络上的其他服务器,但是由于 Nginx 所在的服务器的 httpd 服务没有开启 httpd_can_network_connect 配置项,所以 Nginx 所在的服务器无法发送网络请求,最后导致了上述报错。
因此,要解决上述报错,我们只需要将 httpd 服务的 httpd_can_network_connect 配置项开启即可。
查看 httpd 服务的 httpd_can_network_connect 配置项是否开启:

getsebool -a | grep httpd_can_network_connect

image.png
开启 httpd 服务的 httpd_can_network_connect 配置项:

setsebool -P httpd_can_network_connect 1

image.png

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐