Как заставить обратный прокси-сервер nginx пропустить 503 страницы ошибок до клиента?

Я использую Magento (приложение для электронной коммерции) за nginx в качестве обратного прокси-сервера для Apache, на котором работает приложение PHP. Статический контент обслуживается непосредственно nginx. Magento имеет "режим обслуживания", который использует HTTP-ответ 503. При моей конфигурации, когда включен режим обслуживания, nginx возвращает пустую страницу с ответом 500 вместо красивой страницы режима обслуживания Magento с ответом 503. Как я могу сделать так, чтобы nginx пропустил страницу 503 до клиента?

Вот мой конфиг nginx:

вышестоящий пример кластера {сервер 1.2.3.4:80; }
сервер {
  прослушать 1.2.3.5:80;
  имя_сервера www.example.com;
  root /var/www/example.com/www;

  # безопасность
  location ~ (/(app/|includes/|lib/|pkginfo/|var/|report/config.xml|downloader/(pearlib|template|Maged)/)|/\.svn/|/\.ht.+) {
    возврат 404;
  }

  location ~ \.php $ {
    proxy_pass http: // examplecluster;
    proxy_redirect по умолчанию;
  }

  # статический контент
  место нахождения / {
    try_files $uri @apache;
    истекает 7d;
  }

  # Apache
  location @apache {
    proxy_pass http: // examplecluster;
    proxy_redirect по умолчанию;
  }
}

2 ответа

Решение

Оказывается, во время обслуживания страницы 503 действительно произошла ошибка, поэтому nginx правильно переадресовал ответ.

Тем не менее, соответствующая настройка nginx proxy_intercept_errors off; который уже по умолчанию..

Я знаю, что это довольно старая тема. - Но почему бы просто не позволить nginx обслуживать как статический, так и динамический контент?

Я имею в виду, что nginx уже является веб-сервером, который можно использовать для запуска приложения magento. И вы уже настроили его для обработки статического контента. Было бы легко позволить ему справиться и с динамическим контентом, верно?

Другие вопросы по тегам