[PATCH] Adds $orig_remote_addr in realip module

Maxim Dounin mdounin at mdounin.ru
Mon Jun 8 00:32:13 UTC 2015


Hello!

On Sat, Jun 06, 2015 at 08:46:07AM -0500, Jon Nalley wrote:

> Hi,
> 
> I saw Ruslan's comments and responded (hoping to get a better
> understanding of the problem).
> 
> http://mailman.nginx.org/pipermail/nginx-devel/2015-May/006974.html
> 
> I had assumed that the issue with my prior patch was assigning the
> pointer from the context rather than copying the data.

Your assumption was wrong.  The problem is simple: you can't use 
contexts as long as stored data must survive internal 
redirects.

Try logging your variable and check how it works for requests to 
index files, in a configuration like this:

    log_format test "remote_addr:$remote_addr orig:$orig_remote_addr";
    access_log /dev/stderr test;

    set_real_ip_from 127.0.0.1/32;

    location / {
        index index.html;
        # assuming index.html exists
    }

You'll see it won't work with requests to "/", since an internal 
redirect to "/index.html" happens and clears module contexts.

-- 
Maxim Dounin
http://nginx.org/



More information about the nginx-devel mailing list