B3-从http头中找到X-Forwarded-For发来的客户端ip 地址

简介:

B3-从http头中找到X-Forwarded-For发来的客户端ip 地址

 

拓扑

          haproxy (10.0.100.82)   ----> 动态 php_server (10.0.100.70)

                |静态

      squid_server (10.0.100.73)

                |

 PIC server (nfs/nginx 图片服务器)  (10.0.100.71)

 

squid access.log 日志留下的是 haproxy 的ip 地址。

10.0.100.82 - - [15/Jun/2012:11:17:20 +0800] "GET http://monitor.test.com/cacti/images/shadow_gray.gif HTTP/1.1" 304 283 "http://monitor.test.com/cacti/graph.php?action=view&local_graph_id=62&rra_id=all" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:13.0) Gecko/20100101 Firefox/13.0" TCP_IMS_HIT:NONE
 

解决方法

1 首先编译squid时 请使用 -–enable-follow-x-forwarded-for 参数

2 编辑 squid.conf配置文件,定义squid 日志格式,注意红色字

logformat combined %{X-Forwarded-For}>h %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st "%{Referer}>h" "%{User-Agent}>h" %Ss:%Sh

3 squid 重新载入配置

/usr/local/squid/sbin/squid -k reconfigure

 

更改完成后的squid 日志

192.168.4.164 - - [15/Jun/2012:11:31:30 +0800] "GET http://monitor.test.com/cacti/images/graph_properties.gif HTTP/1.1" 304 284 "http://monitor.test.com/cacti/graph_view.php?action=tree&tree_id=3&leaf_id=13" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:13.0) Gecko/20100101 Firefox/13.0" TCP_IMS_HIT:NONE
 

参考
 
结束

更多欢迎到此讨论:

37275208

本文转自 dongnan 51CTO博客,原文链接:http://blog.51cto.com/dngood/899459

\




相关文章
|
12天前
|
XML Java 数据格式
Servlet 教程 之 Servlet 客户端 HTTP 请求 3
该教程展示了如何在Servlet中处理客户端HTTP请求,特别是获取HTTP头信息。示例代码创建了一个名为`DisplayHeader`的Servlet,它扩展了`HttpServlet`并重写了`doGet`方法。在`doGet`中,使用`HttpServletRequest`的`getHeaderNames()`遍历所有头部,显示其名称和对应值。Servlet在TomcatTest项目下,通过`web.xml`配置映射到`/TomcatTest/DisplayHeader`路径。
29 14
|
12天前
|
安全 Java 网络安全
Servlet 教程 之 Servlet 客户端 HTTP 请求 2
Servlet教程介绍了如何在Servlet中处理HTTP请求,包括获取Cookie、头信息、参数、Session等。方法如:`getCookies()`、`getAttributeNames()`、`getHeaderNames()`、`getParameterNames()`等。还能获取身份验证类型、字符编码、MIME类型、请求方法、远程用户信息、URL路径、安全通道状态以及请求内容长度等。此外,可通过`getSession()`创建或获取Session,并以`Map`形式获取参数。
21 8
|
3天前
|
JSON 编解码 Go
Golang深入浅出之-HTTP客户端编程:使用net/http包发起请求
【4月更文挑战第25天】Go语言`net/http`包提供HTTP客户端和服务器功能,简化高性能网络应用开发。本文探讨如何发起HTTP请求,常见问题及解决策略。示例展示GET和POST请求的实现。注意响应体关闭、错误处理、内容类型设置、超时管理和并发控制。最佳实践包括重用`http.Client`,使用`context.Context`,处理JSON以及记录错误日志。通过实践这些技巧,提升HTTP编程技能。
17 1
|
4天前
|
数据采集 缓存 网络协议
静态代理IP是否支持HTTP和HTTPS?
静态代理IP支持HTTP、HTTPS、FTP、Socks5等协议,HTTP协议因其简单、灵活而常用,通常比HTTPS速度快,因无需加密处理。HTTP代理比SOCKS5代理通常更快,因为HTTP专注于HTTP请求,而SOCKS5处理多种网络流量。静态HTTP代理适合浏览器和爬虫,SOCKS5代理支持更多协议,如TCP、UDP。选择取决于应用场景和需求。
|
4天前
|
运维 Serverless API
Serverless 应用引擎产品使用之阿里函数计算中http类型的函数 FC,内网地址如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
9 1
|
5天前
|
Go 开发者
Golang深入浅出之-HTTP客户端编程:使用net/http包发起请求
【4月更文挑战第24天】Go语言的`net/http`包在HTTP客户端编程中扮演重要角色,但使用时需注意几个常见问题:1) 检查HTTP状态码以确保请求成功;2) 记得关闭响应体以防止资源泄漏;3) 设置超时限制,避免长时间等待;4) 根据需求处理重定向。理解这些细节能提升HTTP客户端编程的效率和质量。
15 1
|
7天前
|
数据采集
如何选择高质量http/Socks5代理ip?
选择高质量HTTP、Socks5代理IP对爬虫和数据采集至关重要。了解代理IP类型,根据需求选择HTTP或Socks5代理。选择稳定、快速、分布广泛、数量充足且不易被封的代理IP供应商。关注代理IP速度、质量、稳定性、区域和使用频率。测试代理IP的连接速度、可用性、匿名性和使用频率。定期更换代理IP以保持效率和可靠性。
|
8天前
|
监控 安全 API
在使用HTTP代理IP的需要注意什么?
在使用HTTP代理IP时,关键点包括选择可靠服务商、确保匿名性、合法合规使用、遵循服务商规定、定期更换IP、检测IP可用性、处理封禁、设置超时时间、监控服务商通知、使用加密协议、定期评估服务质量和遵守法规。这些措施能保证代理的有效性、安全性和合规性。
|
8天前
|
JSON 测试技术 API
Python的Api自动化测试使用HTTP客户端库发送请求
【4月更文挑战第18天】在Python中进行HTTP请求和API自动化测试有多个库可选:1) `requests`是最流行的选择,支持多种请求方法和内置JSON解析;2) `http.client`是标准库的一部分,适合需要低级别控制的用户;3) `urllib`提供URL操作,适用于复杂请求;4) `httpx`拥有类似`requests`的API,提供现代特性和异步支持。根据具体需求选择,如多数情况`requests`已足够。
13 3
|
13天前
Servlet 教程 之 Servlet 客户端 HTTP 请求 1
Servlet教程讲解了客户端HTTP请求,包括各种重要头信息:Accept(定义可处理的MIME类型)、Accept-Charset(指定字符集)、Accept-Encoding(处理的编码类型)、Accept-Language(首选语言)、Authorization(身份验证)、Connection(是否支持持久连接)、Content-Length(POST数据大小)、Cookie(返回cookies)、Host(指定URL的主机和端口)、If-Modified-Since(检查页面更新)、If-Unmodified-Since(条件性操作)。
13 0