502 Bad Gateway

2020-01-13  本文已影响0人  秋元_92a3

重现

在部署一套新的环境的时候,内部集群服务之间调用采用http协议,通过nginx进行跳转调用,当内部服务1调用内部服务2的时候报错,堆栈如下:

<html>
<head><title>502 Bad Gateway</title></head>
<body>
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx</center>
</body>
</html>

        at feign.FeignException.errorStatus(FeignException.java:62) ~[feign-core-9.3.1.jar:?]
        at feign.codec.ErrorDecoder$Default.decode(ErrorDecoder.java:91) ~[feign-core-9.3.1.jar:?]
        at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:138) ~[feign-core-9.3.1.jar:?]
        at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:76) ~[feign-core-9.3.1.jar:?]
        at feign.hystrix.HystrixInvocationHandler$1.run(HystrixInvocationHandler.java:108) ~[feign-hystrix-9.3.1.jar:?]
        at com.netflix.hystrix.HystrixCommand$2.call(HystrixCommand.java:301) ~[hystrix-core-1.5.6.jar:1.5.6]
        at com.netflix.hystrix.HystrixCommand$2.call(HystrixCommand.java:297) ~[hystrix-core-1.5.6.jar:1.5.6]
        at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:46) ~[rxjava-1.1.10.jar:1.1.10]
        ... 26 more

502 BadGateway Error

通过浏览器访问一个网站,服务器接收到请求进程,返回请求的资源和状态码。一般的状态码我们是看不到的,除非发生错误。通过这个状态码我们能够大概推断出服务的错误类型。
不通的500状态的错误码(500,501,502,503,504,etc)都有不通的含义。这意味着请求是被接收的,但是服务端阻止了这个请求的继续。在下面这个例子中502 八点gateway错误是指网关服务接收到一个来自目标服务的无效的响应。

解决

通过上面的分析,基本上可以确定是,nginx访问不到目标服务其导致的。查看nginx配置的跳转的服务,发现是由于防火墙的原因导致的,给内部服务的端口放到防火墙中,重试,发现问题解决。

分析内容,来自:https://kinsta.com/blog/502-bad-gateway/

上一篇 下一篇

猜你喜欢

热点阅读