Ajp неверное сообщение, полученное с подписью
Я использую Tomcat 7.0.29, работающий с modachexy Apache 2.2.22.
Настроен Ajp как протокол в httpd.conf и AjpNioProtocol в server.xml.
После запуска сервера журналы заполняются следующим сообщением:
Тяжелый: неверное сообщение, полученное с подписью 20599
com.apache.coyote.ajp.AjpMessage processHeader
Нет запросов, отправленных на веб-сервер или сервер tomcat, и он по-прежнему вызывает эту ошибку. Журналы доступа в tomcat и apache показывают, что запрос не поступает.
Что вызывает ошибку недопустимого сообщения?
Вот конфигурация:
-
httpd.conf
ProxyPass /wl ajp:// ip : port /wl
ProxyPassReverse /wl ajp:// ip : port /wl
-
server.xml
<Connector port="port"
protocol="org.apache.coyote.ajp.AjpNioProtocol"
connectionTimeout="20000"
acceptorThreadCount="2"
maxThreads="1600"
redirectPort="8443" />
Ответы
Ответ 1
Для меня проблема была простой. Я отправлял HTTP-запросы, но коннектор был настроен с использованием протокола AJP. Мой соединитель в server.xml
был настроен следующим образом:
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>
Но когда я изменил его на это:
<Connector port="8009" protocol="HTTP/1.1" redirectPort="8443"/>
Ошибка исчезла.
Надеюсь, это поможет кому-то с этой ошибкой.
Ответ 2
Это также может происходить, когда размеры буфера не одинаковы на обоих концах: в журналах упоминается неверное сообщение AJP, а браузер получает код ошибки 400
.
Я установил ситуацию как с packetSize
на AJP-коннекторе, так и ProxyIOBufferSize
в конфигурации Apache2.
В Tomcat server.xml
:
<Connector protocol="AJP/1.3" port="8009"
connectionTimeout="20000"
packetSize="65536"
proxyName="yourproxy.domain.ltd" proxyPort="80"
/>
В конфигурации Apache2 mod_proxy_ajp добавьте оператор ProxyIOBufferSize 65536
.
Ответ 3
Было обнаружено, что один из внутренних процессов вызывал этот порт и отправлял HTTP-запросы, вызывающие ошибку "Неверное сообщение..". Таким образом, я закончил добавление дополнительного http-коннектора для этих внутренних процессов.
Ответ 4
Сегодня я получил подобное сообщение:
Nov 18, 2016 4:25:00 PM org.apache.coyote.ajp.AjpMessage processHeader
SEVERE: Invalid message received with signature 65524
Основная причина моей проблемы заключалась в том, что selinux не позволял apache подключаться к tomcat. Я немного смущен относительно того, как эта ошибка была результатом - я ожидаю, что не будет никакого соединения, периода. Лучше всего предположить, что я, вероятно, попытался вручную подключиться к этому порту с помощью telnet. Выполнение этого, безусловно, дает аналогичное сообщение.
Несмотря на это, возможно, это напоминание selinux будет полезно для кого-то другого, кто попадает сюда.