I have an Apache proxy to a custom Java app that returns status code 460 on a specific error condition. When this reaches the client, apache is incorrectly turning it into a 500 status code, although other ones (404, 403) get sent through correctly.
Here is my virtual host:
<VirtualHost *:80> ServerName api.acme.org ProxyPass / http://service.internal:10001/ ProxyPassReverse / http://service.internal:10001/ </VirtualHost>
And the log entry, which shows the correct code:
10.0.0.2 - - [21/Nov/2010:23:20:17 +0000] "GET /session/abc123/touch HTTP/1.1" 460 1379
Any idea what is causing this?
Update: Here is the output to the headers from curl:
Direct to service:
# curl -I http://service.internal:10001/session/abc123/touch HTTP/1.1 460 Content-length: 1388
# curl -O http://api.acme.org/session/abc123/touch HTTP/1.1 500 Internal Server Error Date: Mon, 22 Nov 2010 17:24:51 GMT Content-length: 1388 Connection: close Content-Type: text/plain; charset=UTF-8
Seems Apache has its own idea about what the error should be!