nginx反向代理node.js获取客户端IP
Posted 追风逐月
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx反向代理node.js获取客户端IP相关的知识,希望对你有一定的参考价值。
使用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的主要内容,如果未能解决你的问题,请参考以下文章