如何使用Nginx捕获反向代理错误?

TL; DR我不是在谈论HTTP错误,而是关于内部连接被拒绝错误

嗨!

我正在用Nginx和Django开发一个后端网站。 Nginx用作另一台服务器的反向代理。我也在使用Cloudflare。这是我的网站conf:

server {
    listen 80;
    server_name my.website.fr;

    proxy_intercept_errors on;

    location / {
        proxy_pass http://192.168.0.128:9001;
    }

    error_page 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 420 422 423 424 426 428 429 431 444 449 450 451 500 501 502 503 504 505 506 507 508 509 510 511 /index.html;

    location /index.html {
      root   /var/www/maintenance;
      internal;
    }
}

当我的后端服务器(192.168.0.128)启动并运行时,一切正常。但是,当我的Django服务关闭时,我的Nginx日志中出现了连接被拒绝(111)错误和Cloudflare的错误页面502错误的网关。

有没有办法捕获这类“低级”网络错误并显示我的维护页面?

谢谢!

ffffcccc 回答:如何使用Nginx捕获反向代理错误?

我解决了我的问题。我之前的conf仅处理“ /index.html”连接中的错误。这是我的新配置:

server {
listen 80;
server_name test.tcoolmax.fr;

proxy_intercept_errors on;

location /maintenance {
    proxy_pass http://localhost:8080;
}

location / {
    proxy_pass http://192.168.0.128:9001;
}

error_page 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 420 422 423 424 426 428 429 431 444 449 450 451 500 501 502 503 504 505 506 507 508 509 510 511 maintenance;
}
本文链接:https://www.f2er.com/3086895.html

大家都在问