有时 502 Bad Gateway 有时 504 网关超时,有时网站加载成功

问题描述

我有一个使用 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,之后我每次打开它都会给出 Bad Gateway 错误。 有时,它会自动重新加载,但再次关闭

试图知道Nginx服务器的错误日志,以下是错误日志的输出

有时会记录此流行问题:

enter image description here

有时是这样:

enter image description here

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

enter image description here

此外,后端代码运行良好,因为我可以在开发过程中在本地访问已部署的后端服务,但托管网站无法访问任何后端服务。

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

解决方法

默认情况下 nginx 有 1024 个工作连接,你可以用

events {
  worker_connections  4096; 
}

您也可以尝试增加工作人员的数量,因为 workers*worker_connections 为您提供了可以处理的连接数量。所有这一切都发生在您的网站正在接收流量而您只是连接不足的情况下。