nginx访问互联网接口每两小时自动断开,手动连接一次后自动恢复,求解答?

最近有多台dmz服务器访问互联网服务接口出现每两小时自动丢失链接,报502的问题,有没有人遇到过同样的情况,求解答,出口通过nginx出去,短链接,网络正常,出现这种问题后重新加载nginx甚至简单curl或ping下对应的地址即可恢复,但是两小时后又会重新出现报错...显示全部

最近有多台dmz服务器访问互联网服务接口出现每两小时自动丢失链接,报502的问题,有没有人遇到过同样的情况,求解答,出口通过nginx出去,短链接,网络正常,出现这种问题后重新加载nginx甚至简单curl或ping下对应的地址即可恢复,但是两小时后又会重新出现报错

收起
参与25

查看其它 5 个回答wangql的回答

wangqlwangql  系统工程师 , NULL

nginx不太懂,但是从2小时想到了Linux的一组参数,默认如下:
net.ipv4.tcp_keepalive_time = 7200
net.ipv4.tcp_keepalive_intvl = 75
net.ipv4.tcp_keepalive_probes = 9

解释:
tcp_keepalive_time=7200:2小时内如果没有任何连接活动,启用keepalive机制
tcp_keepalive_intvl = 75:每75秒检测一次
tcp_keepalive_probes = 9:如果连续检测9次都没活动连接,则中断此连接

系统发现死亡连接的时间:tcp_keepalive_time+(tcp_keepalive_intvl*tcp_keepalive_probes)
按默认来算:7200+(75*9)=7875s=2小时11分11秒 系统2小时11分11秒才能发现死亡连接

所以,可以尝试下把这3个值该小,看看有没有效果,比如下面 大概15分钟发现死亡连接
net.ipv4.tcp_keepalive_time = 700
net.ipv4.tcp_keepalive_intvl = 10
net.ipv4.tcp_keepalive_probes = 20

供参考

IT咨询服务 · 2022-07-14
浏览954
  • 好的,非常感谢,我研究下
    2022-07-15
  • 改了net.ipv4.tcp_keepalive_time这个参数,还是不行,能不能具体说下,这个参数是改大还是改小
    2022-07-15
  • wangql  wangql回复 lych370
    就按我最后给的3行改就行,把那3个参数都改了 每一行的含义已经做了说明,你再看下帖子
    2022-07-15

回答者

wangql
wangql41446
系统工程师NULL
擅长领域: 存储备份软件定义存储

wangql 最近回答过的问题

回答状态

  • 发布时间:2022-07-14
  • 关注会员:7 人
  • 回答浏览:954
  • X社区推广