nginx反向代理node.js获取客户端IP

使用Nginx做node.js程序的反向代理,会有这么一个问题:在程序中获取的客户端IP永远是127.0.0.1

如果想要拿到真实的客户端IP改怎么办呢?

一、首先配置Nginx的反向代理 proxy_set_header

 server {
       listen       80;
       server_name  chat.luckybing.top;

       location / {
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://127.0.0.1:4000;
        }
    }

这时Nginx做反向代理就会把客户端的Head信息写入请求的Head中

二、Node.js+Express程序中获取客户端真实IP

用  req.headers[‘x-forwarded-for‘]  || req.headers[‘x-real-ip‘]  来获取客户端IP

注:如果还是用 req.connection.remoteAddress 来获取IP,发现获取到的还是  127.0.0.1

时间: 2024-10-28 21:39:09

nginx反向代理node.js获取客户端IP的相关文章

nginx反向代理tomcat日志获取真实IP

今天测试一下nginx反向代理功能时,让tomcat日志里获取用户真实IP地址,谷歌了一下,都是一篇文章的内容,复制了tomcat配置文件中的要修改的内容,可怎么也获取不到,神奇了就!无奈之下,仔细读每行复制的内容,发现问题了,估计都要是搜索到那篇文章的话,都得无法获取真实IP地址,就一个小小的地方.开始检查配置内容: (1)nigix  nginx.conf配置文件中: proxy_set_header  Host $host; proxy_set_header  X-Real-IP $rem

Nginx反向代理下IIS获取真实IP

1. iis 如果放在反向代理后面,日志里的c-ip是反向代理服务器的ip,不是真正用户的ip,想要记录用户的ip要做两件事. 一.在反向代理设置X-Forwarded-For段,以下为nginx下的配置示例: server { location { …… proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for; …… } } 二.在iis站点上安装下面这个isapi filter,这东西是在f5的开发论坛上找到的,按开发者的话说

nginx反向代理 后端apache获取真实ip方式

系统环境为 centos6.4 64位 nginx配置: 在server中加入 - proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; - 后端apache为yum安装方式: 在网上查找apache需要第三方的模块来获取真实的客户ip 网上给的下载地址用不了只能另辟新径 安装rpaf 我是rpm安装的 别的方式可以自行查找 方法如下 rpm -ivh ftp://ftp.pbone.net/mir

JS获取客户端IP地址、MAC和主机名的7个方法汇总

一.使用JS获取客户端IP的几个方法 方法一(只针对IE且客户端的IE允许AcitiveX运行,通过平台:XP,SERVER03,2000). 获取客户端IP代码: 1 function GetLocalIPAddr() { 2 var oSetting = null; 3 var ip = null; 4 try { 5 oSetting = new ActiveXObject("rcbdyctl.Setting"); 6 ip = oSetting.GetIPAddress; 7

JS获取客户端IP地址、MAC和主机名七种方法

一.使用JS获取客户端IP的几个方法方法一(只针对IE且客户端的IE允许AcitiveX运行,通过平台:XP,SERVER03,2000).获取客户端IP代码:<HTML><HEAD><TITLE>GetLocalIP</TITLE></HEAD><BODY>获取IP:<script language="JavaScript"> function GetLocalIPAddr(){ var oSetti

js获取客户端ip地址

<script type="text/javascript" src="http://www.coding123.net/getip.ashx?js=1"></script> <script> alert(ip) </script> js获取客户端ip地址

Nginx反向代理+Tomcat+Springmvc获取用户访问ip

Nginx+Tomcat+Springmvc获取用户访问ip 1.Nginx反向代理 修改Nginx配置文件 location / { ***********之前代码*******; proxy_set_header host $host; proxy_set_header X-forwarded-for $proxy_add_x_forwarded_for;//设置代理服务器ip头,代码获取时的参数 proxy_set_header X-Real-IP $remote_addr; //允许将发

让nginx反向代理能够记录来自客户端的真实IP地址

上一节,我们说到了让Nginx能够正确识别用户到底访问的是哪个虚拟主机的域名,本章,我们讨论一下,如何让Nginx能够记录来自客户端的真实IP地址. 1.首先,我们看一下httpd的访问日志,看看客户端的IP地址是哪一个? 192.168.1.6 - - [29/Apr/2015:07:51:07 +0800] "GET / HTTP/1.0" 200 13 192.168.1.6 - - [29/Apr/2015:07:51:07 +0800] "GET / HTTP/1.

Nginx反向代理导致PHP获取不到正确的HTTP_HOST,SERVER_NAME,客户端IP的解决方法

今天第一次陪Nginx负载均衡,发现PHP无法获取HTTP_HOST 贴上的Nginx配置 upstream abc.com { server 10.141.8.55:8005; server 10.141.8.55:8006; } server { listen 80; server_name www.xxx.com; log_not_found off; access_log /var/log/nginx/html-access.log main; charset utf-8; locati