У меня есть сервер tomcat за apache. Я использую mod_ssl и обратный прокси для tomcat. Все работают на портах по умолчанию.
Полная ошибка выглядит следующим образом. ack Ошибка прокси
Прокси-сервер получил недопустимый ответ от вышестоящего сервера. Прокси-сервер не может обработать запрос POST /pages/doeditpage.action.
Причина: ошибка чтения с удаленного сервера
Если я очищу кеш браузера, ошибка исчезнет и вернется после нескольких попыток. Я тестирую то же самое в Chrome / Firefox / IE на платформе Windows. Интересно, он отлично работает в Chrome / Firefox на базе Linux.
Я много гуглил, есть несколько ответов на переполнение стека, но я не могу найти свой ответ. Это проблема на стороне сервера? потому что так много браузеров не могут ошибаться одновременно в Windows.
Отвечая на свой вопрос. Обычно такая проблема может возникнуть, если есть какие-то проблемы с соединителем Apache с Tomcat.
В моем случае я уменьшил значение тайм-аута до 5 мс, я думаю, что это действительно меньше для любого интернет-приложения. Более того, я открыл новый коннектор на 8443, который будет разговаривать с apache.
Что касается прокси и обратного прокси, вы можете обойтись небезопасным портом по умолчанию 8080 и указать безопасный и прокси-порт как 443 (безопасный порт apache).
secure = "true" scheme = "https" proxyPort = 443 в коннекторе порта 8080 по умолчанию решила проблему. Я знаю, что это может быть очень простой материал для любого, кто имеет опыт работы с Java / Web, но для кого-то вроде меня, который вообще ничего не знает о серверах приложений JAVA, было очень сложно понять это.
Попробуйте следующее в своей конфигурации apache. Я включил комментарий, потому что он действительно идет с конфигурацией debian по умолчанию. А также объясните, почему используются варианты:
# SSL Protocol Adjustments:
# The safe and default but still SSL/TLS standard compliant shutdown
# approach is that mod_ssl sends the close notify alert but doesn't wait for
# the close notify alert from client. When you need a different shutdown
# approach you can use one of the following variables:
# o ssl-unclean-shutdown:
# This forces an unclean shutdown when the connection is closed, i.e. no
# SSL close notify alert is send or allowed to received. This violates
# the SSL/TLS standard but is needed for some brain-dead browsers. Use
# this when you receive I/O errors because of the standard approach where
# mod_ssl sends the close notify alert.
# o ssl-accurate-shutdown:
# This forces an accurate shutdown when the connection is closed, i.e. a
# SSL close notify alert is send and mod_ssl waits for the close notify
# alert of the client. This is 100% SSL/TLS standard compliant, but in
# practice often causes hanging connections with brain-dead browsers. Use
# this only for browsers where you know that their SSL implementation
# works correctly.
# Notice: Most problems of broken clients are also related to the HTTP
# keep-alive facility, so you usually additionally want to disable
# keep-alive for those clients, too. Use variable "nokeepalive" for this.
# Similarly, one has to force some clients to use HTTP/1.0 to workaround
# their broken HTTP/1.1 implementation. Use variables "downgrade-1.0" and
# "force-response-1.0" for this.
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
# MSIE 7 and newer should be able to use keepalive
BrowserMatch "MSIE [17-6]" ssl-unclean-shutdown
которые в основном отключают keep alive для IE до версии 6 и отменяют ssl-unclean-shutdown до текущей (и будущей) версии IE. Если это по-прежнему не работает для вас, попробуйте следующее
BrowserMatch "MSIE [17-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
# MSIE 7 and newer should be able to use keepalive
#BrowserMatch "MSIE [17-6]" ssl-unclean-shutdown