I am using Tomcat 7.0.29 fronted with Apache 2.2.22 modproxy. Configured Ajp as the protocol in httpd.conf and AjpNioProtocol in server.xml. After the server starts, the logs are filled with the following message:
Severe: Invalid message received with signature 20599
com.apache.coyote.ajp.AjpMessage processHeader
There are no requests sent to the web or tomcat server and it still throws that error. Access logs in tomcat and apache show that no request is coming in. What is causing the invalid message error?
Here is the configuration :
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" />
For me, the problem was simple. I was sending HTTP requests but the connector was configured with AJP protocol. My connector in server.xml
was configured like this:
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>
But when I changed it to this:
<Connector port="8009" protocol="HTTP/1.1" redirectPort="8443"/>
The error went away.
Hopefully that will help someone with this error.
This may also happen when buffer sizes are not same at both ends: logs mention invalid AJP message and browser receive 400
error code.
I have fixed the situation with both packetSize
on AJP connector and ProxyIOBufferSize
in Apache2 configuration.
In Tomcat server.xml
:
<Connector protocol="AJP/1.3" port="8009" connectionTimeout="20000" packetSize="65536" proxyName="yourproxy.domain.ltd" proxyPort="80" />
In Apache2 mod_proxy_ajp configuration, add the statement ProxyIOBufferSize 65536
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With