现在的位置: 首页Nginx>正文
用Nginx做代理后PHP取不到HTTP_X_FORWARDED_FOR值
2012年06月26日 Nginx 评论数 3 ⁄ 被围观 23,787 次+

nginx做前端代理后,我们发现 HTTP_X_FORWARDED_FOR 无法获取到客户端真实的IP地址了。

原因 Nginx 默认并不会增加 X_FORWARDED_FOR 头信息,我们给他加上就好了。简单配置如下:

  1. location /   
  2. {   
  3.     proxy_pass          http://www.92csz.com;   
  4.     proxy_set_header    Host             $host;   
  5.     proxy_set_header    X-Real-IP        $remote_addr;   
  6.     proxy_set_header    X-Forwarded-For  $proxy_add_x_forwarded_for;    //别忘了这一句   
  7.     proxy_set_header    HTTP_X_FORWARDED_FOR $remote_addr;              //或是加上这一句   
  8.     proxy_redirect      default;   
  9. }  

重启nginx加载新配置后,就可以获取客户端真实的IP地址了。

本文地址:http://www.92csz.com/20/1175.html
如非注明则为本站原创文章,欢迎转载。转载请注明转载自:moon's blog
 

目前有 3 条留言 其中:访客:2 条, 博主:1 条

  1. wwek : 2012年07月16日11:56:35  -49楼

    proxy_set_header Host $host;
    这个也是必须的。传递主机头·

    • clairelume : 2012年07月16日11:57:45

      是的 😛

  2. 穷小子 : 2012年07月20日01:10:44  -48楼

    不错的小技巧。试试