On proxy my nginx show wrong ip (private)
Francis Daly
francis at daoine.org
Wed Nov 24 03:50:39 MSK 2010
On Tue, Nov 23, 2010 at 01:45:02PM -0500, dong wrote:
Hi there,
> Problem is in this that php scripts from apache (192.168.1.3) showing
> client IP from nginx (192.168.1.2). For example: phpBB showing on line
> users and ips 192.168.1.2.
The php scripts are probably using REMOTE_ADDR, which is the address of
the client connecting to Apache, which is nginx.
> Its my settings in nginx (192.168.1.2):
> --- START---
> server {
> listen 80;
> server_name www.skuter-forum.pl skuter-forum.pl;
> access_log /var/log/nginx/skuter-forum.pl.access.log;
>
> if ($host = 'www.skuter-forum.pl' ) {
> rewrite ^/(.*)
> http://skuter-forum.pl/$1 permanent;
> }
Aside -- there's a better way of doing that.
> location / {
> proxy_pass http://192.168.1.3:80;
> proxy_set_header X-Real-IP $remote_addr;
> proxy_set_header Host $http_host;
> }
> }
>
> --- END ---
>
> How set real clients ips?
You have told nginx to send the http header X-Real-IP with this
value. That's pretty much all you can do on the nginx side. So either
get your Apache to set that value as REMOTE_ADDR for the php scripts,
or get the php scripts to read HTTP_X_REAL_IP instead of REMOTE_ADDR.
Good luck,
f
--
Francis Daly francis at daoine.org
More information about the nginx
mailing list