V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
xiaoyuesanshui
V2EX  ›  Linux

NGINX 间歇 502 , conncetion refused

  •  
  •   xiaoyuesanshui · 68 天前 · 1431 次点击
    这是一个创建于 68 天前的主题,其中的信息可能已经有所发展或是发生改变。

    家用小服务器跑了几个 web 和 php 服务(绝大部分通过 docker 部署),通过 nginx 反代稳定运行半年左右

    近期所有服务均出现了间歇 502 ,检查日志,都是报 connect() failed connect() failed (111: Connection refused) while connecting to upstream, client

    尝试将 nginx 迁移到单独的虚拟机上,情况稍有好转,但是无法根治

    网上检索过资料,但是用处都不大

    尝试精简服务(删除大部分容器),减轻负载,但是没有效果

    附环境 DEBIAN 11 NGINX 1.18

    14 条回复    2022-12-05 21:48:52 +08:00
    cz5424
        1
    cz5424  
       68 天前
    上次遇到了这种问题时后端不支持长链接,降级为 1.0 解决
    seers
        2
    seers  
       68 天前
    keepalive_timeout 设置了没,是不是没释放长连接
    winson030
        3
    winson030  
       68 天前
    可以看看我发过的一个帖子,也是遇到 502 的情况。我这边主要是因为订阅转换链接太长了,nginx 没设置反向代理缓冲区,导致返回 502 。把 proxy_buffer_size 相关的设置都配一下,应该就可以了。试试看。
    xiaoyuesanshui
        4
    xiaoyuesanshui  
    OP
       68 天前
    多谢各位好心大哥的指导
    我这边破案了,要被自己蠢哭了

    由于 acme 的自签证书会每 60 天自动重签,重签后,如果不 reload nginx 新证书不会生效。
    为了应对这个,我就写了一个 crontab ,每月 1 号自动重启 nginx 和 docker

    但是我脑子抽筋写成了

    * * 1 * * systemctl restart nginx /docker

    今天 1 号到了,所以我的服务器今天一天都在不停的重启 docker 和 nginx
    然而 docker 启动所有镜像都需要时间,所以会间歇的 502 ,这也解释了,为啥我感觉越删镜像,502 来的越频繁
    ab
        5
    ab  
       68 天前 via iPhone
    @xiaoyuesanshui #4 acme 不是会自动 reload nginx 吗?为何还要自己写定时
    xiaoyuesanshui
        6
    xiaoyuesanshui  
    OP
       68 天前
    @ab #5 理论上是这样,但是总是 reload 不出来,所以干脆就自己写 crontab 了,结果搞出这么一个限时乌龙
    julyclyde
        7
    julyclyde  
       68 天前
    @xiaoyuesanshui 我记得重启 docker 服务应该不会顺便重启容器啊
    xiaoyuesanshui
        8
    xiaoyuesanshui  
    OP
       67 天前
    @julyclyde #7 呃 crontab 里写的是 reload.....
    julyclyde
        9
    julyclyde  
       67 天前
    @xiaoyuesanshui 那应该更不影响啊
    xiaoyuesanshui
        10
    xiaoyuesanshui  
    OP
       64 天前
    @julyclyde #9 但是我改了 crontab 后,就正常了,也不重启了,服务都正常了
    julyclyde
        11
    julyclyde  
       64 天前
    @xiaoyuesanshui 你的 docker 是不是旧版本的呀?我记得分离重启这个功能似乎是 17 还是 18 版本加上的?应该已经挺早的了
    或者……你是不是用的腾讯内部 bug 版?
    xiaoyuesanshui
        12
    xiaoyuesanshui  
    OP
       64 天前
    @julyclyde #11 不是,20.10
    还有腾讯内部 bug 版这种东西?

    我没见过 23333
    xiaoyuesanshui
        14
    xiaoyuesanshui  
    OP
       64 天前
    @julyclyde #13 多谢 我研究研究
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   实用小工具   ·   4848 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 01:40 · PVG 09:40 · LAX 17:40 · JFK 20:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.