Search code examples
nginxproxyhttp-headers

Forward request headers from nginx proxy server


I'm using Nginx as a proxy to filter requests to my application. With the help of the "http_geoip_module" I'm creating a country code http-header, and I want to pass it as a request header using "headers-more-nginx-module". This is the location block in the Nginx configuration:

location / {
    proxy_pass                      http://mysite.com;
    proxy_set_header                Host http://mysite.com;;
    proxy_pass_request_headers      on;
    more_set_headers 'HTTP_Country-Code: $geoip_country_code';
}

But this only sets the header in the response. I tried using "more_set_input_headers" instead of "more_set_headers" but then the header isn't even passed to the response.

What am I missing here?


Solution

  • If you want to pass the variable to your proxy backend, you have to set it with the proxy module.

    location / {
        proxy_pass                      http://example.com;
        proxy_set_header                Host example.com;
        proxy_set_header                HTTP_Country-Code $geoip_country_code;
        proxy_pass_request_headers      on;
    }
    

    And now it's passed to the proxy backend.