6

Apacheサーバーのフロントエンドとしてnginxを使用しています。構成ファイルは次のようになります。

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/;
    }
}

標準エラー コードを一緒に追加して、複数の種類のエラーを 1 ページに表示できます。
例えば:

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 に答える