Ошибка прокси-сервера 502: прокси-сервер получил неверный ответ от восходящего сервера

Мы создаем приложение отправки массовой рассылки на Java. Почта отправляется сторонним SMTP. После отправки 400-500 писем обслуживание tomcat6 прекратится. Ниже приведена ошибка.

Ошибка прокси-сервера Прокси-сервер получил неверный ответ от восходящего сервера. Прокси-сервер не смог обработать запрос GET/lin/Campaignn.jsp. Причина: Ошибка чтения с удаленного сервера

Кроме того, при попытке использовать ErrorDocument для обработки запроса была обнаружена ошибка 502 Bad Gateway.

Сервер Apache на msizzler.com Порт 80

Но когда мы отправляем с localhost, я не получил никаких ошибок. Он отправляет все письма. Пожалуйста, помогите мне разобраться с этой проблемой.

Ответ 1

Ответ HTTP 502 "Плохой шлюз" генерируется, когда веб-сервер Apache не получает действительного ответа HTTP от восходящего сервера, который в этом случае является вашим веб-приложением Tomcat.

Некоторые причины, почему это может произойти:

  • Возможно, Tomcat разбился
  • Веб-приложение не ответило вовремя и запрос от Apache
  • Потоки Tomcat синхронизируются
  • Сетевое устройство блокирует запрос, возможно, как некоторый тайм-аут соединения или систему предотвращения атак DoS

Если проблема связана с настройками таймаута, вы можете решить ее, исследуя следующее:

  • ProxyTimeout директива Apache mod_proxy
  • Конфигурация соединителя Apache Tomcat
  • Руководство по сетевому устройству

Ответ 2

Добавьте это в свой файл httpd.conf

Timeout 2400
ProxyTimeout 2400
ProxyBadHeader Ignore 

Ответ 3

Приложение java занимает слишком много времени, чтобы ответить (возможно, из-за запуска /jvm холодно), поэтому вы получаете прокси-ошибку.

Proxy Error

The proxy server received an invalid response from an upstream server.
 The proxy server could not handle the request GET /lin/Campaignn.jsp.

Как сказал Альберт Макланг, изменение настроек тайм-аута http может решить проблему. Я подозреваю, что приложение java вызывает ошибку 500+, поэтому ошибка шлюза Apache тоже. Вы должны посмотреть в журналах.

Ответ 4

У меня был этот вопрос один раз. Оказалось, что проблема с запросом на базу данных. После повторного создания таблиц и индекса он был исправлен.

Хотя он говорит прокси-ошибку, когда вы смотрите на журнал сервера, он показывает выполнение таймаута запроса. Это то, что я имел раньше, и как я это решил.