Node.js 獲取客戶端IP, 以及nginx轉發攜帶客戶端ip配置

nginx配置中, 如果需要轉發 可以加上proxy_set_header, 請求頭

 location /node {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr; //原請求來源ip 真實ip最可信
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; //http客戶端或者反向代理生成的ip 可以通過逗號連起來, ip1,ip2,ip3...
        #proxy_buffering off;
        proxy_request_buffering off;
        proxy_pass http://node;
    }

在nodejs中可以通過下面函數 獲取ip

var get_ip = function(req) {
    var ip = req.headers['x-real-ip'] || 
             req.headers['x-forwarded-for'] ||
             req.socket.remoteAddress || '';
    if(ip.split(',').length>0){
        ip = ip.split(',')[0];
    }
    return ip;
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章