网站首页 > 技术教程 正文
假如有一个客户端请求经过了nginx代理转发以后发送给node.js服务器,如果我们想要获取到客户端的真实ip地址,而不是nginx服务器的地址的话应该怎么做呢?
首先在nginx中配置一下被代理服务器接收到的header信息
proxy_set_header用来配置被代理服务器接收到的header信息。配置语法如下:
proxy_set_header field value;
其中,field为要设置的变量名,value为变量的值。
在这里我们将真实的客户端ip设置为X-Real-IP,然后传给被代理服务器,这样被代理服务器就可以通过header信息来获取到客户端真实的ip了。配置如下:
server {
listen 80;
server_name yuanjingyan.com;
if ( $host !~* "yuanjingyan.com" ) {
return 404;
}
location / {
proxy_pass http://ip:port;
proxy_set_header X-Real-IP $remote_addr;
}
}
然后在node.js中获取客户端真实ip
在node.js中我们可以通过在nginx中配置的变量X-Real-IP来获取客户端真实ip,代码如下:
var clientIP = context.req.headers['x-real-ip']; //客户端ip,获取的是经过nginx代理后的真实请求ip
if(!clientIP){
clientIP=context.req.connection.remoteAddress; //客户端ip,获取的是没有经过nginx代理后的真实请求ip
}
其中要注意的是headers中的“x-real-ip”要写成小写的,不能写成“X-Real-IP”,否则获取不到数据。
猜你喜欢
- 2024-10-11 Nginx自定义数据结构之字符串(String)数组(Array)链表(List)
- 2024-10-11 那些你不知道的?——支付宝架构师眼中的高并发架构
- 2024-10-11 脚本语言,node在前端都有什么作用?
- 2024-10-11 什么是Java开发人员的Node.js?(java node是什么)
- 2024-10-11 提高 kubernetes 集群管理工具 kubectl 使用生产力
- 2024-10-11 Docker 快速部署一个 node App(docker如何部署)
- 2024-10-11 基于阿里云的 Node.js 稳定性实践
- 2024-10-11 从静态到node再到负载均衡,你知道多少?【前端篇】
- 2024-10-11 高效管理 Kubernetes 集群之道(kubernetes集群应用部署的哪些功能)
- 2024-10-11 Vue 项目部署到服务器的问题解决方法
你 发表评论:
欢迎- 08-06linux 和 windows文件格式互相转换
- 08-06谷歌 ChromeOS 已支持 7z、iso、tar 文件格式
- 08-06Linux下比较文件内容的6种方法
- 08-06文件格式及功能汇总
- 08-0610个Linux文件内容查看命令的实用示例
- 08-06Linux-如何区分不同文件类型
- 08-06Zabbix技术分享——监控windows进程资源使用情况
- 08-06Linux系统卡顿?学会ps命令这三招,轻松定位问题进程
- 最近发表
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)