nginx做前端代理,程序取不到HTTP_X_FORWARDED_FOR值

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

原因 : nginx 默认并不会增加 X_FORWARDED_FOR 头信息,我们给他加上就好了。

简单配置如下:

  1. location /
  2. {
  3.     proxy_pass          http://www.phpdba.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地址了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>