Показать пользовательскую страницу 503, если вверх по течению вниз - PullRequest
6 голосов
/ 17 февраля 2011

Я использую 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 не работает, я получаю простую страницу 502, созданную nginx.Как сделать так, чтобы он обслуживал мою пользовательскую страницу с ошибкой и возвращал код состояния 503, который более актуален в этой ситуации?

1 Ответ

25 голосов
/ 12 марта 2011

Примерно так

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 404 =200 /.empty.gif;

Другой вариант
Чтобы заставить его возвращать другой код ошибки, вы можете использоватьreturn ключевое слово
Например:

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

См. Также
nginx: создание настраиваемой страницы обслуживания HTTP 503

...