We’re using nginx as a middle layer in front of our application server
(mod_perl). When mod_perl returns an error page, the HTTP status line
is
missing the “reason phrase” after the status code, like “Not Found”,
e.g.
HTTP/1.1 404
Server: nginx/1.2.1
…etc
should be
HTTP/1.1 404 Not Found
…etc…
AFAICT, the HTTP spec requires at least a space after the status code:
http://www.w3.org/Protocols/rfc1945/rfc1945
The first line of a Full-Response message is the Status-Line,
consisting of the protocol version followed by a numeric status code
and its associated textual phrase, with each element separated by SP
characters. No CR or LF is allowed except in the final CRLF sequence.
On Mon, Jun 03, 2013 at 07:07:50PM -0400, kgoess wrote:
HTTP/1.1 404 Not Found
…etc…
[…]
Is this a bug in nginx, or a configuration issue that we can fix? The patch
to Perlbal is simple enough, is it worth looking for a patch to nginx? Or
did we miss something else entirely?
As soon as you proxy requests to another server - nginx just
returns a status line as got from a backend as soon as it’s able
to recognize it.