前言
公司为了双十一和双十二做了几个活动页面,通过微信公众号推送活动地址的方式,前台页面是部署在阿里云的 OSS 上的,通过阿里云 CDN 加速;
后台部署在阿里云的 ECS 上的 tomcat 里,加上阿里云的负载均衡对外服务。
前台 HTTP 请求报 502 错误
项目上线的时候,tomcat 启动正常,前台页面访问却报了一个 502 错误,一开始看到 502 遍怀疑是后台 tomcat 没有启动成功,通过在本地服务器上用 curl 请求接口发现,接口返回正常,并没有 502 的错误,那么一定是中间某个代理服务器报出这个 502 的错误。
根据项目架构来看,代理服务器应该是阿里云的负载均衡服务,登录阿里云控制界面查看,阿里云的负载均衡服务有个检查端口状态的选项,就是在后端配置一个 html 页面,然后负载均衡去请求,如果成功就会显示这个端口正常。
登录到控制台显示这个检测选项异常,之前一直以为这个检测和负载均衡功能是分开的,实际上不是,负载均衡服务在检测不成功的时候,是不提供负载的服务的,也就是响应中 502 状态码的原因。