Reverse Proxy Load Balancing - proxy_set_header

Dustin Kanske dustin at
Sat Mar 17 03:43:08 MSK 2007

On Mar 9, 2007, at 8:42 PM, Igor Sysoev wrote:

> On Fri, Mar 09, 2007 at 01:13:42PM -1000, Dustin Kanske wrote:
>> In my nginx config I am attempting to set the values of two request
>> headers using the following configuration:
>> location / {
>>   proxy_set_header X_FORWARDED_PROTO http;
>>   proxy_set_header X_SSL_VERIFIED false;
>> }
>> The goal is to ignore whatever the client sets for these headers, and
>> to pass our defined values on to the upstream cluster.
>> It appears that these values only get set if the client leaves them
>> out of the request. If the client sets X_SSL_VERIFIED to true, the
>> backend application sees 'true'.
>> I wanted to clarify that this is the expected behavior and that
>> proxy_set_header cannot be used to override the request header values
>> that a client sets. If this is the case, is there any way to
>> accomplish this?
> No, proxy_set_header always resets any client header.
> Are you shure that you do not mix X_SSL_VERIFIED and X-SSL-VERIFIED ?

Hi Igor,

It appears to be the case that our application was rewriting the  
dashes to underscores. What really needed to be in nginx was:

location / {
   proxy_set_header X-FORWARDED-PROTO http;
   proxy_set_header X-SSL-VERIFIED false;

What appeared to be happening was that nginx was always setting  
X_SSL_VERIFIED false, but the users were passing in X-SSL-VERIFIED  
true, both being in the headers. The application would then change  
the dashes to underscores and use the 'true' one.

Thanks for the help,

> -- 
> Igor Sysoev

More information about the nginx mailing list