nginx how to get the request client ipaddress

本秂侑毒 提交于 2020-03-22 09:51:08

问题


I have ngnix proxying to a nodejs server. I am trying to read the request client ip address/host name in my nodejs, but it's always

::ffff:127.0.0.1

But in my nginx access log, I can see the client ip address printed, not sure why my nodejs server can't get it.

x.x.x.x - - [24/Aug/2017:14:28:01 -0700] "GET ...."

回答1:


Add the following to your nginx configuration stanza that proxies to NodeJS:

proxy_set_header X-Real-IP $remote_addr;

Now you can read the header 'X-Real-IP' in NodeJS




回答2:


Use proxy_set_header X-Real-IP $remote_addr; as setting in location block where you are proxying the request.

In the server use the attribute "HTTP_X_REAL_IP"

For Example in python: request.environ.get('HTTP_X_REAL_IP') (or) request.environ.get('HTTP_X_REAL_IP',request.environ.get('REMOTE_ADDR'))



来源:https://stackoverflow.com/questions/45871225/nginx-how-to-get-the-request-client-ipaddress

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!