Koa 通过代理获取客户端 IP

ctx.request.ip

请求远程地址。 当 app.proxy 设置为 true 时,支持 X-Forwarded-Host。


1, 在 Nginx 反向代理配置 proxy_pass 的部分添加这样一行。 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;


2, 在 Koa 应用里设置 app.proxy 为 true。



X-Forwarded-For 定义

X-Forwarded-For (XFF) 在客户端访问服务器的过程中如果需要经过HTTP代理或者负载均衡服务器,可以被用来获取最初发起请求的客户端的IP地址,这个消息首部成为事实上的标准。在消息流从客户端流向服务器的过程中被拦截的情况下,服务器端的访问日志只能记录代理服务器或者负载均衡服务器的IP地址。如果想要获得最初发起请求的客户端的IP地址的话,那么 X-Forwarded-For 就派上了用场。


这个消息首部会被用来进行调试和统计,以及生成基于位置的定制化内容,按照设计的目的,它会暴露一定的隐私和敏感信息,比如客户端的IP地址。所以在应用此消息首部的时候,需要将用户的隐私问题考虑在内。



参考:

https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/X-Forwarded-For

修改时间 2021-04-15

真诚赞赏,手留余香
赞赏
随机推荐
PM2 生态系统文件 ecosystem.config.js
重构:互联网公司的政治斗争和大清洗
如何在ecshop首页或任意页面显示用户的当前余额
使用阿里云对象存储 OSS 命令行工具 ossutil 自动备份 Windows 服务器
Apache、PHP 配置 open_basedir,以及性能问题
CentOS7 安装 LAMP 和 Mod Security 手记
vue-router的几种使用方式
20190104 手绘口罩女
使用Cordova命令行界面(CLI)
Chrome开发者工具的实用技巧(译)