V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
shanyang
V2EX  ›  NGINX

nginx中proxy_set_header中HTTP_X_FORWARDED_FOR和X-Real-IP作用

  •  
  •   shanyang · 2012-09-03 16:15:07 +08:00 · 17769 次点击
    这是一个创建于 4468 天前的主题,其中的信息可能已经有所发展或是发生改变。
    做了个实验,使用php,test.php代码如下:
    <?
    //php获取ip的算法
    $remoteaddr=$_SERVER["REMOTE_ADDR"];
    echo $remoteaddr;
    echo "---";
    $remotehost=$_SERVER["REMOTE_HOST"];
    echo $remotehost;
    echo "---";
    $xforwardedfor=$_SERVER["HTTP_X_FORWARDED_FOR"];
    echo $xforwardedfor;
    echo "---";
    $xrealip=$_SERVER["HTTP_X_REAL_IP"];
    echo $xrealip;
    ?>
    然后对于配置1
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    server_name bbb.com;
    proxy_pass aaa.com;
    访问bbb.com/test.php得到
    221.214.216.194---221.214.216.194---228.94.9.112, 192.168.0.1---192.168.0.1
    之后去掉proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;这一行,既配置2后在实验
    得到221.214.216.194---221.214.216.194---228.94.9.112---192.168.0.1---1.1
    也就是说$_SERVER["HTTP_X_FORWARDED_FOR"]里面的内容变了少了192.168.0.1这一内网ip
    但是我要怎么配置才能让test.php记录到的地址和不通过反向代理直连的时候一样呢?
    注:直连的时候aaa.com/test.php结果为:228.94.9.112---228.94.9.112---------
    5 条回复    1970-01-01 08:00:00 +08:00
    Cofyc
        1
    Cofyc  
       2012-09-03 16:18:57 +08:00
    web 服务器是 nginx?

    可以了解下 realip 模块:http://wiki.nginx.org/HttpRealipModule
    feiandxs
        2
    feiandxs  
       2012-09-03 16:19:33 +08:00
    -_____- 后端服务器如果也是nginx的话记得加上
    x-real-ip 前端IP;
    shanyang
        4
    shanyang  
    OP
       2012-09-03 23:39:11 +08:00
    @Cofyc 被反向代理的web服务器是租用的虚拟主机
    shanyang
        5
    shanyang  
    OP
       2012-09-03 23:42:32 +08:00
    @feiandxs 我在看看,没注释比较难看懂
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1159 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 18:40 · PVG 02:40 · LAX 10:40 · JFK 13:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.