最近在用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);