码迷,mamicode.com
首页 > Web开发 > 详细

nginx反向代理node.js获取客户端IP

时间:2017-12-04 13:09:37      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:cti   配置nginx   name   list   server   col   span   bsp   就会   

使用Nginx做node.js程序的反向代理,会有这么一个问题:在程序中获取的客户端IP永远是127.0.0.1

如果想要拿到真实的客户端IP改怎么办呢?

一、首先配置Nginx的反向代理 proxy_set_header

 server {
       listen       80;
       server_name  chat.luckybing.top;

       location / {
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://127.0.0.1:4000;
        }
    }

这时Nginx做反向代理就会把客户端的Head信息写入请求的Head中

二、Node.js+Express程序中获取客户端真实IP

 req.headers[‘x-forwarded-for‘]  || req.headers[‘x-real-ip‘]  来获取客户端IP

注:如果还是用 req.connection.remoteAddress 来获取IP,发现获取到的还是  127.0.0.1

 

nginx反向代理node.js获取客户端IP

标签:cti   配置nginx   name   list   server   col   span   bsp   就会   

原文地址:http://www.cnblogs.com/xbblogs/p/7976406.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!