针对nginx的模块介绍可以查阅wiki:http://wiki.nginx.org/Modules

常用模块:HTTP Core

Proxy

Rewrite

Upstream

原理:
squid,varnish以及nginx等,在做反向代理的时候,因为要代替客户端去访问服务器,所以,当请求包经过反向代理后,在代理服务器这里这个IP数据包的IP包头做了修改,最终后端web服务器得到的数据包的头部的源IP地址是代理服务器的IP地址,这样一来,后端服务器的程序给予IP的统计功能就没有任何意义,所以在做代理或集群的时候必须解决这个问题,这里,我以nginx做集群或代理的时候如何给后端web服务器保留(确切的说是传递)客户端的真实IP地址。

首先,在前端nginx上需要做如下配置:

location / {
proxy_pass http://192.168.100.100;
proxy_set_header host $host;
proxy_set_header X-Real-IP $remote_addr;
};

在后端192.168.100.100的apache服务器上配置文件进行如下修改。

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

改为

LogFormat "%{X-Real-IP}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

即可。

tomcat中的Java代码修改如下

out.println(“X-Real-IP : ” + request.getHeader(“X-Real-IP”) + “<br>”);

其中X-Real-IP即用户真实IP

tomcat    server.xml配置文件中:

  1. <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"

  2. prefix="localhost_access_log." suffix=".txt"

  3. pattern="%{X-Real-IP}i %l %u %t %D "%r" %s %b" />

转载于:https://blog.51cto.com/wushank/1678370

nginx转发及后端服务器获取真实client的IP相关推荐

  1. java获取f5服务器真实ip_F5中源地址转换(AutoMap)模式下后端服务器获取客户端真正的IP地址...

    F5中开启AutoMap,并传递X-Forwarded-For值 开启F5源地址转换"Auto Map" 方式一: 在http profile中开启X-Forwarded-For ...

  2. 配置Nginx前端Apache后端服务器LNMPA-与LNMP,HHVM性能比拼

    文章目录 LNMPA一键安装 LNMPA性能比较 HHVM性能比拼 Nginx前端小结 文章目录 LNMPA一键安装 LNMPA性能比较 HHVM性能比拼 Nginx前端小结 Apache和Nginx ...

  3. 服务器获取真实客户端 IP

    0x01 先查个问题 测试环境微信支付通道提示网络环境未能通过安全验证,请稍后再试,出现这种情况一般首要 想到可能是双方网络交互中微信方验参与我们出现不一致,翻了下手册确定是这类问题开始排查环节 可能 ...

  4. Nginx之配置后端服务器组

    Nginx服务器支持设置一组服务器作为后端服务器,Nginx反向代理,负载均衡等重要功能会经常涉及后端服务器. 服务器组的设置包括以下的一些指令,他们是由标准的HTTP模块ngx_http_upstr ...

  5. Nginx在多层代理下获取真实客户端IP地址

    最近在研究nginx中如何获取真实客户端IP的方法.众所周知,在编译Nginx时,可通过添加http_realip_module模块来获取真实客户端IP地址.何为真实IP地址呢?请看下图,既获取到的真 ...

  6. 学习笔记 - Nginx在多层代理下获取真实客户端IP地址

    最近在研究nginx中如何获取真实客户端IP的方法.众所周知,在编译Nginx时,可通过添加http_realip_module模块来获取真实客户端IP地址.何为真实IP地址呢?请看下图,既获取到的真 ...

  7. nginx设置代理后端服务器增加前缀

    需求背景 有时候我们需要这样一个操作,线上是请求/aaa/bbb/ccc 但是我们线下测试的时候为了不影响已有服务,增加了一个path为 /ddd/aaa/bbb/ccc这样的 也就是我们后端代理的时 ...

  8. nginx 之postread 阶段:获取真实客户端地址的realip 模块

    如果拿到真实的用户IP地址,需要有如下前提 1.TCP 连接四元组 (src_ip,src_port,dst_ip, dst_port) 2.HTTP头部X-Forwarded-For 用户传递IP ...

  9. nginx转发ArcServer地图服务器出现的http://localhost:6080/arcgis/rest/info?f=json跨域问题

    QQ交流群:607330463 GIS开发技术最强交流群   未经允许 禁止转载  可以参考 Access to XMLHttpRequest at 'http://localhost:6080/ar ...

最新文章

  1. Windows Azure Platform Introduction (6) Windows Azure应用程序运行环境
  2. php 变更 obj,php怎么将object转为string
  3. 推荐算法-聚类-DBSCAN
  4. 使用 requests 配置代理服务
  5. 合并Spark社区代码的正确姿势
  6. 1044 火星数字 PAT乙级 (C++)
  7. Android_Event Bus 的基本用法
  8. 华强北三代悦虎1562A怎么样?
  9. 豆瓣 为什么不用php,豆瓣网友是不是都疯了?
  10. 项目总结25:海康威视SDK-Java二次开发-客流量分析
  11. unity, 判断可见性
  12. 读书笔记—《雷达信号处理基础》第一章 雷达系统与信号处理概述(2)
  13. Unity3D 一些工具总结
  14. JUCE框架教程(4)—— Slider Class入门
  15. 网站服务器的宽带是1mb是什么意思,1mb/s网速是什么意思
  16. 别再自己抠图了,Python教你一招弄完
  17. 多益网络社招iq_18年多益秋招iq测试题
  18. 不会真有人Macbook录屏没声音吧?别用SoundFlower了!
  19. git恢复某个文件到上一个提交版本
  20. 视频配音变声用什么软件?这些软件能帮助你

热门文章

  1. exchange 2003配置ASSP 反垃圾邮件
  2. Android UI Button 和GridView 的设计--优化(2)
  3. JavaScript Switch 语句
  4. 10月份机房技术指标
  5. 最锋利的Visual Studio Web开发工具扩展:Web Essentials详解(转)
  6. android的权限问题
  7. VC6迁移到VS2008几个问题——良好的代码,从我做起,从现在开始。
  8. fragment切换事件
  9. Android的API与差异化之路
  10. Apache服务器部署(1)