在Nginx中模拟随机504错误

y0u0uwnf  于 2023-10-17  发布在  Nginx
关注(0)|答案(1)|浏览(176)

有没有一种方法,我可以添加到Nginx配置的东西,会随机导致504网关错误?
我目前的Nginx开发配置是:

http {
   
   client_max_body_size 100M;
   client_body_timeout 60s;
   client_header_timeout 60s;
   keepalive_timeout 60s;

   upstream app {
      server app-1:8080;
      server app-2:8080;
   }

   server {
      listen 80;
      location / {

         # want to enter something like
         # if (random() < 10) {
         #   return 504;
         # }

         proxy_pass http://app;
         proxy_set_header Host $host;
         proxy_set_header X-Real-IP $remote_addr;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_set_header X-Forwarded_Proto $scheme;
         client_max_body_size 100M;
      }
   }
   
}

我的问题是,在生产中,我偶尔会在Nginx和我的KotlinSping Boot Web应用程序之间遇到504 Gateway错误,我想在开发中测试运行代码,以便在出现这些错误时处理它们。但在我的开发模式下,Nginx运行在Docker容器中,它只是工作,我没有遇到504 Gateway错误。
因此,虽然我确实想修复504,但我也希望有一种方法可以时不时地模拟一个随机的Nginx 504响应。

hjzp0vay

hjzp0vay1#

504超时状态的简单解释:
504 Gateway Error表示服务器没有及时收到上游服务器的响应,而上游服务器需要访问该服务器才能完成请求。
您可以简单地停止正在开发的服务器并向Nginx发出请求。它不会得到及时的响应并返回504。
您还可以减少超时持续时间(默认为60秒),这样您就不必等待很长时间。例如30秒

http{
   ...
   proxy_read_timeout 30;
   proxy_connect_timeout 30;
   proxy_send_timeout 30;
   ...
}

相关问题