如果上游关闭,则显示自定义503页面

时间:2011-02-17 16:41:55

标签: apache proxy nginx http-status-code-503

我使用nginx作为apache服务器的前端。配置文件如下所示:

upstream apache {
    server localhost:8000;
}

server {
    listen 80;
    error_page 503 /www/static/503.html;

    # need some magic here #

    location /static/ {
        root /www/static/;
    }

    location / {
        proxy_path http://apache/;
    }
}

现在,当apache关闭时,我收到一个由nginx生成的简单502页面。如何使它服务于我的自定义错误页面并返回状态代码503,这在这种情况下更相关?

1 个答案:

答案 0 :(得分:25)

像这样的东西

upstream apache {
    server localhost:8000;
}

server {
    listen 80;
    error_page 502 503 /www/static/503.html;

    location /static/ {
        root /www/static/;
    }

    location / {
        proxy_path http://apache/;
    }
}

您可以将标准错误代码附加在一起,以显示多种类型错误的单个页面 例如:

error_page 502 503 /www/static/503.html;

如需更多参考,请参阅error_page manual


error_page manual上说

  

此外,可以改变   对另一个人的回答代码   例如:

error_page 404 =200 /.empty.gif;

另一种选择
要使其返回不同的错误代码,您可以使用return关键字
例如:

# check for a condition
  if (condition) {
     return 503;
  }

另见
nginx: Create HTTP 503 Maintenance Custom Page