外部呼叫的ENETUNREACH错误

时间:2017-11-29 16:17:38

标签: google-cloud-platform google-compute-engine google-kubernetes-engine

在过去的一周里,我在获取外部信息时遇到了一个异常错误(在这个特定情况下,facebook):

  

ConnectionError:HTTPSConnectionPool(host ='graph.facebook.com',   port = 443):使用url超出最大重试次数:/v2.7/xxxxxx/xxxxx(引起   通过   NewConnectionError(':无法建立新连接:   [Errno 101] ENETUNREACH',))

我正在使用GCE负载均衡器,每天几次我得到502无网关错误。负载均衡器后面只有一个实例(现在)。

我很想相信我在这个实例上短时间内失去了互联网连接(可能是几秒钟,负载均衡器需要做几次调用才能将其标记为正常工作)。

任何人都遇到连接丢失在计算引擎实例上的问题?任何人都知道如何调试它?

1 个答案:

答案 0 :(得分:1)

我遇到了以下问题,使用Nginx和HTTP Load Balancer遇到零星的502坏网关,你可能会觉得它很有帮助。基本上你我必须调整服务器,以确保连接没有因为竞争条件而被超时丢弃。

主要问题是“默认nginx keepalive_timeout与Google Cloud Platform HTTP(S)负载均衡器不兼容”

您必须增加nginx的'keepalive_timeout',否则可能会对POST请求产生间歇性和零星的502 Bad Gateway响应。

# Tune nginx keepalives to work with the GCP HTTP(S) Load Balancer:
keepalive_timeout 650;
keepalive_requests 10000;

你可以找到之前帮助过我的一篇很棒的文章here,它显示了这个问题的根本原因。

EDIT。有时我的NGINX Rate Limiting setting也会导致HTTP运行状况检查失败,并且暂时认为该实例运行状况不佳,我不知道它是否与您的问题有关但是它可能对找到您的问题搜索502错误的人有帮助。