问题描述

首先简单说下服务器架构,前端一台【负载均衡】,使用 Nginx 实现,并在此上面安装了 Redis,好为 Tomcat 7 提供 session 共享服务。后端两台 Web 服务器,使用的是 Tomcat 7。现在已经实现了简单的 负载均衡 与 session 共享。

但问题是,后端的 Tomcat 的端口只有改为 80 时前端的 Nginx 才能正常提供负载均衡,除此端口(即 80)外任何一个端口都会使 Nginx 报 502 Bad Gateway 错误,如 图1 所示:

图1 - Nginx 报 502 Bad Gateway

解决办法

后经查找发现原来是 Nginx 主机的 SELinux 服务限制了其(即 Nginx)使用 http 访问权限引起的,输入以下命令即可解决此问题:

setsebool -P httpd_can_network_connect 1          # “1”为开启,“0”为关闭

注:此命令执行时可能需要一些时间,请耐心等待其执行完成。权限开启后可能还要重启一下 Nginx 服务才会生效。



作者:CNSDHH
链接:https://www.jianshu.com/p/375dfc093997
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Logo

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

更多推荐