使用nginx反向代理,获取用户真实IP地址 admin | 2012-11-06 首页说反向代理,在nginx的配置文件nginx.conf中,http部分引用外部文件proxy.conf,内容为:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE_ADD $remote_addr;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
|
接下来在server主机中配置location段,使用proxy_pass http://****;来反向代理.此处可使用负载均衡.
接下来就是使php页面中,获取用户IP时,使用真实IP地址. php.ini 中找到 auto_prepend_file= 设置:auto_prepend_file = ”/home/username/include/header.php” (注意此处,所包含的文件,必需在httpd.conf中指定的可执行php的目录中)it论坛 然后对应的文件(如header.php)中,写上
- $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_REAL_IP'];
复制代码 使得所有的php页面在执行之前,重置$_SERVER['REMOTE_ADDR']即可获得访客真实IP地址.
摘自:http://www.yiibase.com/php/view/217.html
|