Назад | Перейти на главную страницу

Прокси-сервер получил недопустимый ответ от вышестоящего сервера.

У меня есть сервер 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