Подтвердить что ты не робот

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" />
    
4b9b3361

Ответ 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 будет полезно для кого-то другого, кто попадает сюда.