eggjs获取客户端真实IP配置

在 Eggjs 里获取客户端 IP 非常容易,简单来说,ctx.request.ip 就是客户端 IP。哪个 IP 请求过来的,哪个 IP 就是客户端 IP。

但是在生产环境服务器上,Eggjs 的前端往往还有一个反向代理服务器,比如 Nginx。这时候 ctx.request.ip 的值就是 Nginx 所在的 IP,往往就是本地地址 127.0.0.1。那么这时要怎么获取到客户端的真实 IP?

开启前置代理模式

通过 config.proxy = true,可以打开前置代理模式:

1
2
// config/config.default.js
exports.proxy = true;

Nginx 反向代理配置

在 Nginx 反向代理配置 proxy_pass 的部分添加这样一行。

1
2
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
//proxy_pass http://127.0.0.1:7001;

ctx.request.ip

1
const ip = this.ctx.request.ip
#

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×