23饿1 发表于 2017-1-19 08:58:03

在nginx反代后端nginx真实服务器获取客户端IP

                      实验:测试前端使用nginx做代理,在后端服务器上获取客户端真实IP

真实服务器:192.168.10.11
      192.168.10.14
代理服务器:192.168.10.12
客 户 端:192.168.10.13
      192.168.10.2

1.在nginx代理服务器上设置

    upstream web {
       server 192.168.10.11;
       server 192.168.10.14;
       }

    server {
      listen       80;
      server_namelocalhost;
      location / {
            proxy_pass http://web;
            proxy_set_header host      $host;
            proxy_set_header X-forwarded-for $proxy_add_x_forwarded_for;
            proxy_set_header X-real-ip    $remote_addr;
      }

2.在后端服务器设置   
    log_formattest1'$remote_addr - $http_x_forwarded_for';
    access_loglogs/access.logtest1;


3.使用客户端访问代理服务器

4.查看后端服务器访问日志   
    192.168.10.12 - 192.168.10.13
    192.168.10.12 - 192.168.10.13
    192.168.10.12 - 192.168.10.2
    192.168.10.12 - 192.168.10.2
可以看出,真实服务器上的$remote_addr是代理的IP,$http_x_forwarded_for就是客户端的真实IP了.
                  

页: [1]
查看完整版本: 在nginx反代后端nginx真实服务器获取客户端IP