Input Headers. - headers_more_module.

agentzh agentzh at
Thu Aug 30 19:09:42 UTC 2012


On Thu, Aug 30, 2012 at 10:12 AM, David | StyleFlare
<david at> wrote:
> I am trying to figure out what I dont see request headers added to the
> request.
> I am trying to add 'X-Server-ID: $id'
> Here is a snippet form my config.
> location /{
>     more_set_input_headers 'X-Server-ID: $id';
>     more_set_headers 'X-Server-ID: $id';
>     uwsgi_pass://upstream;
> }
> I see X-Server-ID sent in the response headers, but my upstream application
> does not seem to get the Header Variable.

The more_set_input_headers directive runs at the end of the nginx
"rewrite" phase and I think your $id variable just didn't have a value
(yet) at that phase.

You can try inserting a constant header like this:

    set $id "My-ID";
    more_set_input_headers "X-Server-ID: $id";

I've tested the following example with nginx 1.2.3 and ngx_headers_more 0.18:

    location = /t {
        set $id "123456";
        more_set_input_headers 'X-Server-ID: $id';

And then in another terminal, start "nc" to listen on the local port, 1234:

    $ nc -l 1234

And then accessing the /t location defined above:

    $ curl localhost:8080/t

assuming your nginx is listening on the local port 8080.

And now on the terminal running "nc", you should get something like
this (omitted those non-printable bytes):


We can see that the X-Server-ID request header name and its value,
"123456", are indeed sent by ngx_uwsgi.

Best regards,

More information about the nginx mailing list