问题
配置阿里云SLB根据URL转发,配置完成后,一直未转发到后端,后端使用的是nodejs提供的接口。
![](https://i-blog.csdnimg.cn/blog_migrate/d057a5d5606decacfdc3f2643d047566.png)
使用curl转发路径,报错502 Bad Gateway,实际后端是正常的。
![](https://i-blog.csdnimg.cn/blog_migrate/16a15d0770a1909cec6e19c2d57c9c65.png)
发现异常
发现健康日志异常,如下图。
![](https://i-blog.csdnimg.cn/blog_migrate/cbb58c17ae2a1884633ee86491c5003e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/5a3ceb48742d61df6adc7e0a6763f117.png)
![](https://i-blog.csdnimg.cn/blog_migrate/be9d34070ac38461007c843a49ceb104.png)
![](https://i-blog.csdnimg.cn/blog_migrate/65d1cf6d51528e3ede686d15f32d6866.png)
后来发现阿里的SLB健康检测,需要主端口下必须有index.html,默认不能返回404,即使对应端口URL能返回数据也不行,找到问题就简单了。
3.解决方法
阿里云只要弹出对应端口URL接口能返回数据就认为是正常,这个向他们提了,但未解决。
在转发后端主端口下添加index.html,由于该服务不归自己管,不方便动。
降低指定URL的健康检测标准,将返回的404也纳入到正常范围内,使用该方法解决了问题。
![](https://i-blog.csdnimg.cn/blog_migrate/28e1a0a4b715327de71ef215f89f8b65.png)