<div>I've got nginx proxying to a lighttpd server (hosted on a DroboPro FS), and I'm using only the following four directives in the proxy location's stanza:</div><div><br></div><div><div>proxy_pass http://<proxy destination></div><div>proxy_set_header X-Real-IP $remote_addr;</div><div>proxy_set_header Host $host;</div><div>proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;</div></div><div><br></div><div>This seems to be all that's necessary. The proxy target's access log shows the accessing client's IP for each request, not the nginx server.</div><div><br></div><div>You've got a lot more stuff going on in your config, though, so I'm not sure if this will be helpful to you or not.  Maybe you could comment out some directives and start with just the basics?</div><div><br></div><div>
                    -Lee
                </div>
                <div><div><span style="color: rgb(160, 160, 168); "><br></span></div><div><span style="color: rgb(160, 160, 168); "><br></span></div><div><span style="color: rgb(160, 160, 168); ">On Sunday, December 4, 2011 at 1:19 PM, pk899 wrote:</span></div></div>
                <blockquote type="cite" style="border-left-style:solid;border-width:1px;margin-left:0px;padding-left:10px;">
                    <span><div><div><div>pk899 Wrote:</div><div>-------------------------------------------------------</div><blockquote type="cite"><div><div>Alexander Kolesen Wrote:</div><div>--------------------------------------------------</div><div>-----</div><div>....</div><blockquote type="cite"><div><div>in your location section with 'proxy_pass'</div><div>directive </div><div>(or 'fastcgi_pass' or whatever you use).</div><div><br></div><div>Like the following:</div><div><br></div><div>    location / {</div><div>....</div><div>        proxy_pass                </div><div>http://<backend_ip>:<backend_port>;</div><div>        proxy_set_header           Host         </div></div></blockquote><div> </div><blockquote type="cite"><div><div> $host;</div><div>+       proxy_set_header           X-Real-IP    </div></div></blockquote><div> </div><blockquote type="cite"><div><div> $remote_addr;</div><div>....</div><div>    }</div><div><br></div><div>Your mod_rpaf config have already correctly set</div></div></blockquote><div>up</div><blockquote type="cite"><div><div>to handle X-Real-IP header </div><div>and consider it as the end user's IP.</div><div><br></div><div>Also, you shouldn't use the RPAFsethostname</div></div></blockquote><div>option</div><blockquote type="cite"><div><div>turned 'On' unless you</div><div>set X-Host header in the nginx config before</div><div>passing request to backend. Just turn it 'Off'.</div></div></blockquote><div><br></div><div><br></div><div><br></div><div><br></div><div>Thanks Alexander.  But this does not work. </div><div><br></div><div>I commented all the "set_real_ip_from" in nginx</div><div>config. Restarted nginx. </div><div><br></div><div>Now the "REMOTE_ADDR" in my php code inside Apache</div><div>is just my server's IP. So the real IP is not</div><div>being passed. </div><div><br></div><div>If I enable the "set_real_ip_from" inside nginx</div><div>config, then my php code sees the right</div><div>REMOTE_ADDR. But the log messages inside Apache</div><div>are wrong even then....all from my own server IP.</div><div><br></div><div><br></div><div>Anyway, my nginx "proxy.inc" is this: </div><div><br></div><div><br></div><div><code></div><div>proxy_cache_bypass          $http_pragma </div><div>$http_authorization;</div><div>proxy_no_cache              $http_pragma </div><div>$http_authorization;</div><div>proxy_temp_file_write_size  512k;</div><div>proxy_pass_header           Set-Cookie;</div><div>proxy_redirect              off;</div><div>proxy_hide_header           Vary;</div><div>proxy_set_header            Accept-Encoding '';</div><div>proxy_set_header            Referer</div><div>$http_referer;</div><div>proxy_set_header            Host   $host;</div><div>proxy_set_header            Cookie $http_cookie;  </div><div>    </div><div>proxy_set_header            X-Real-IP </div><div>$remote_addr;</div><div>proxy_set_header            X-Forwarded-Host</div><div>$host;</div><div>proxy_set_header            X-Forwarded-Server</div><div>$host;</div><div>proxy_set_header            X-Forwarded-For</div><div>$proxy_add_x_forwarded_for;</div><div></code></div><div><br></div><div><br></div><div>Any ideas? </div><div><br></div><div><br></div><div><br></div><div>PS: I turned that RPAFsethostname off in apache.</div><div>This seems harmless enough.</div></div></blockquote><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div>Btw, just to add...</div><div><br></div><div>The HTTP_X_FORWARDED_FOR variable does have the right IP address, but</div><div>the "REMOTE_ADDR" does not. The latter has only my own server IP. </div><div><br></div><div>What do I need to do?</div><div><br></div><div>Posted at Nginx Forum: <a href="http://forum.nginx.org/read.php?2,219581,219595#msg-219595">http://forum.nginx.org/read.php?2,219581,219595#msg-219595</a></div><div><br></div><div>_______________________________________________</div><div>nginx mailing list</div><div><a href="mailto:nginx@nginx.org">nginx@nginx.org</a></div><div><a href="http://mailman.nginx.org/mailman/listinfo/nginx">http://mailman.nginx.org/mailman/listinfo/nginx</a></div></div></div></span>
                 
                 
                 
                 
                </blockquote>
                 
                <div>
                    <br>
                </div>