Ошибка приложения passthru при использовании apache mod_proxy - PullRequest
2 голосов
/ 28 марта 2010

Heyas. Я использую mod_proxy с apache2, предоставляя возможность vhost нескольким приложениям сервлетов, работающим на локальной машине. Работает нормально, по большей части. Запросы поступают в apache, после чего направляются приложению, привязанному к порту на localhost. Приложение получает запрос и отвечает, который возвращается клиенту через Apache.

Проблема, с которой я столкнулся, заключается в том, что приложение выдает 500 ошибок, а mod_proxy их останавливает. Часто эти ошибки вызываются в ajax-запросе, а ошибка обрабатывается в javascript на стороне клиента. Например, при вызове createObject (name) на стороне сервера может возникать исключение NameNotUniqueException, которое доставляется обратно как 500. Клиентский JavaScript может затем отображать соответствующее сообщение об ошибке.

Когда приложение выдает ошибку (что приводит к ответу 500 на mod_proxy), тогда apache топает сообщение об ошибке и возвращает

500 Внутренняя ошибка сервера

Внутренняя ошибка сервера

Сервер обнаружил внутреннюю ошибку или неверная конфигурация и не удалось завершить ваш запрос.

.. стандартное сообщение об ошибке на стороне сервера apache.

Я хочу, чтобы mod_proxy передавал исходные 500 клиенту. Есть ли пропущенная мною директива, которая предотвращает забивание 500?

ТИА

Ответы [ 2 ]

3 голосов
/ 23 июня 2010

У вас есть

 ProxyRequests Off
 ProxyErrorOverride Off
 ProxyPass /path/ http://backend.ip/path/
 ProxyPassReverse / http://backend.domain/

Замените backend.ip и backend.domain вашими значениями (здесь я использую backend.ip, поскольку он не позволяет apache выполнять DNS-запросы по каждому запросу).

Обычно ошибки сообщаются как есть. Потому что ProxyErrorOverride по умолчанию отключено. Если этого не происходит с моей конфигурацией, пожалуйста, проверьте, действительно ли 500 с вашего внутреннего сервера. Или просто покажите нам свою полную конфигурацию прокси.

0 голосов
/ 08 мая 2019

У меня та же проблема: я получаю пустые 500 страниц после перехода с apache2 / mod_wsgi на apache2 с обратным прокси-сервером на mod_wsgi-express.

Мой конфиг (заменил фактический домен на www.example.com):

<VirtualHost *:443>
  ServerName www.example.com

  ProxyRequests Off
  ProxyErrorOverride Off
  ProxyPass         /  http://localhost:8001/
  ProxyPassReverse  /  https://www.example.com/
  ProxyPreserveHost On
  RequestHeader set X-Forwarded-Proto "https"

  ErrorLog /var/log/apache2/www.example.com.error.log
  LogLevel warn
  CustomLog /var/log/apache2/www.example.com.log combined

  SSLEngine On
  SSLCertificateFile    /etc/letsencrypt/live/www.example.com/cert.pem
  SSLCertificateKeyFile /etc/letsencrypt/live/www.example.com/privkey.pem
  SSLCertificateChainFile       /etc/letsencrypt/live/www.example.com/fullchain.pem
</VirtualHost>
...