相关内容
  1. Linux如何使用系统自带包管理命令安装官方Nodejs
  2. 如何迁移(备份还原)Redis数据
  3. 解决Electron通知栏图标会自动消失问题
  4. Ubuntu 18.04 如何使用命令安装官方nodejs
  5. Linux(Ubuntu)如何调整交换内存(swap)的使用率?
  6. Webpack 如何使用Typescript做为配置文件?
  7. 如何使用.http文件测试接口
  8. Nodejs使用内置函数解析参数

如何解决Express经过Nginx代理后req.ip不正确问题?

最近在用Express重构我的个人小站
在做访问记录的时候发现Nginx已经加了代理头,但Express还是拿不到真实客户端ip,其实还需要加一个Express配置项。

原来的Nginx配置

location @node-express {
   proxy_pass http://127.0.0.1:8080;
   proxy_set_header Host $http_host;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Real-PORT $remote_port;
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

修改后的Nginx配置

location @node-express {
   proxy_pass http://127.0.0.1:8080;
   proxy_set_header Host $http_host;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Real-PORT $remote_port;
   proxy_set_header X-Forwarded-For $remote_addr;
}

修改后还是无法拿到真实的ip,还需要给express加一个配置项

app.set("trust proxy", true);

发表评论