【问题标题】:Sometimes 502 Bad Gateway , Sometimes 504 gateway timeout, sometimes website loads successfully有时 502 Bad Gateway ,有时 504 网关超时,有时网站加载成功
【发布时间】:2021-05-13 07:54:28
【问题描述】:

我有一个使用 NGINX 服务器托管在谷歌云平台上的网站。几个小时前它运行良好,但突然出现 502 bad gateway 的错误。

NGINX 服务器托管在另一个实例上,主项目是另一个实例,以下是我的服务器的配置:

server {
      listen 443 ssl;  
      server_name www.domain.com;
       ssl_certificate /path-to/fullchain.pem;
      ssl_certificate_key /path-to/privkey.pem;
     
      # REST API Redirect
      location /api {
              proxy_set_header X-Real-IP  $remote_addr;
              proxy_set_header X-Forwarded-For $remote_addr;
              proxy_set_header Host $host;
              proxy_pass http:/internal-ip:3000;
      }
     
       # Server-side CMS Redirect
      location / {
              proxy_set_header X-Real-IP  $remote_addr;   
              proxy_set_header X-Forwarded-For $remote_addr;
              proxy_set_header Host $host;
              proxy_pass http://internal-ip:4400;
       }
  }

当重新启动 nginx 服务器实例时,网站加载成功,但在三到四次刷新后它开始给出 Bad Gateway 之后任何时候我打开它都会给出错误的网关错误。 有时,它会自动重新加载,但又会再次关闭。

尝试了解nginx服务器的错误日志,错误日志的输出如下:

有时会记录这个热门问题:

有时是这样的:

关于第一个问题,我尝试了一些建议,例如在服务器配置中将代理发送和读取时间增加到某个更高的值,例如 suggested here,并且如下图所示:

后端代码也可以正常工作,因为我可以在开发过程中访问本地部署的后端服务,但托管网站无法访问任何后端服务。

但没有任何效果,遗憾的是我的网站已关闭。 请提出任何解决方案。

【问题讨论】:

  • 您网站的流量是多少?您是否在 Compute Engine 虚拟机上运行 nginx?您的后端代码与 nginx 相比在哪里 - 您将其称为 internal-ip - 它是另一个 Compute Engine 吗?
  • 是的,我在其他实例上的 Compute Engine VM 上运行 nginx,而后端在另一个计算引擎 vm 实例上,其内部 ip 在 nginx 服务器配置文件中提及。

标签: nginx server timeout nginx-config bad-gateway


【解决方案1】:

默认情况下,nginx 有 1024 个工作器连接,您可以更改它

events {
  worker_connections  4096; 
}

您还可以尝试增加工作人员的数量,因为 workers*worker_connections 为您提供了可以处理的连接数量。所有这一切都在您的网站正在接收流量并且您的连接用完的情况下。

【讨论】:

    猜你喜欢
    • 2019-09-01
    • 2018-11-25
    • 1970-01-01
    • 2013-05-20
    • 2019-01-22
    • 2011-08-30
    • 2017-04-30
    • 2019-08-30
    相关资源
    最近更新 更多