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-12-15

声明:本站所有文章和图片,如无特殊说明,均为原创发布。商业转载请联系作者获得授权,非商业转载请注明出处。
随机推荐
Node.js 简介
选择排序
River 主题
JavaScript 对象
Node.js 的 URL 的模块缺陷
WordPress用户的user_login, user_nicename, display_name 和 nickname有什么区别
github Support for password authentication was removed
Node.js 内置模块