6

我使用 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?

4

1 回答 1

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 手册


error_page手册上它说

此外,可以将答案代码更改为另一个代码,例如:

error_page 404 =200 /.empty.gif;

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

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

另请参阅
nginx:创建 HTTP 503 维护自定义页面

于 2011-03-12T18:56:19.967 回答