Multiple Wan IP Addresses, Single LAN IP Address

Peter Portante peter.a.portante at
Fri Jun 11 10:54:35 MSD 2010

Hi Folks,

We are running into a small problem with bad HTTP clients.

We have sold a bunch of hardware with embedded HTTP clients which don't
URL-encode the parameter values. For example:

  GET /a/r?did=X234 567 Y HTTP/1.1

We were using a pair of Apache servers behind a hardware load-balancer and
switched our environment to front those Apache servers with a pair of Nginx
servers. We actually use those Nginx servers for a number of other web sites
we serve.

When we made this switch, these particular clients stopped working. Nginx is
responding immediately after receiving the "GET" line above with "400 Bad
Request". This *is* valid behavior on Nginx's part, as according to our
understanding of the HTTP protocol, no spaces are allowed in the request

Apache is apparently rather forgiving on this front. Is there some setting
or configuration parameter in Nginx that would make it more forgiving of
these spaces in the request URI?

If there is not, would it be difficult for us to modify Nginx to make it
more forgiving? If so, any pointers as to where to start?

Our other options we can think of are:

1. route HTTP traffic from these clients to Apache servers
2. leave them dead in the water until customers complain so we can tell them
   to upgrade their firmware for the fix

Thanks for any help or pointers you can offer.


More information about the nginx mailing list