Apache + HAProxy 一台服务器(A)
Rails App 两台服务器(B,C) version=2.0.4
前段时间突然发现production.log中只能显示haproxy的IP.而不能显示真正的client ip
但在/etc/haproxy.cfg中已经注释了
#option forwardfor # enable insert of X-Forwarded-For headers
初步怀疑是HAProxy到mongrel的问题。经过在mongrel中debug,发现是rails code的问题。
rails v2.0.2升级到rails v2.0.4,加强了对IP的安全检查。
在application.rb中overwrite rails code.增加
#Overrides TRUSTED_PROXIES to allow the logging of the HTTP_X_FORWARDED_FOR ip in the logs (i.e. the client's ip):
ActionController::AbstractRequest.const_set("TRUSTED_PROXIES", /^unknown$|^111\.111\.111\.11|22$|^127\.0\.0\.1$|^(10|172\.(1[6-9]|2[0-9]|30|31)|192\.168)\./i)
Production.log中能够显示client的真实IP
分享到:
相关推荐
通过以上步骤,您可以确保在使用HAProxy作为负载均衡器时,IIS服务器能够正确地记录客户端的真实IP地址。这对于维护网络安全、进行用户行为分析等工作至关重要。此外,这种方法不仅适用于HAProxy,也适用于其他类型...
7. **安全与优化**:确保HAProxy配置符合安全性最佳实践,例如限制访问统计页面的IP范围,使用SSL/TLS进行加密传输,以及根据需求调整连接超时和最大并发连接数。 在提供的标签“源码”和“工具”中,我们可以推测...
正确配置haproxy负载均衡器可以显著提升系统的可扩展性和可靠性。在实际部署中,应根据业务需求和服务器资源,合理调整负载均衡策略、健康检查频率、超时时间等参数,以达到最佳的性能和稳定性。同时,定期监控...
1. **负载均衡**:haproxy可以根据预设的策略(如轮询、最少连接数、源IP哈希等)将进入的请求分发到后端服务器,从而提高系统的处理能力,并避免单点故障。 2. **高可用性**:通过健康检查机制,haproxy可以监测...
`option forwardfor`添加X-Forwarded-For头,记录客户端真实IP。错误页面相关设置允许自定义返回给客户端的错误页面。`cookie`和`redispatch`涉及会话持久性和会话重调度。`reqadd`和`rspadd`允许在请求或响应中添加...
7. **客户端测试日志管理界面**:最后,从客户端再次访问系统,同时检查日志管理界面,确认日志信息是否正确记录了请求的来源、目的地以及响应时间等关键信息。这有助于进行故障排查和性能优化。 总结,这个实验...
3. **前端段(frontend)**:定义对外服务的接口,设置监听的IP和端口,以及与客户端交互的规则。 4. **后端段(backend)**:定义服务器池,包含一组服务器实例,HAProxy将流量分发至此。 5. **服务器(server)**...
2. **全透明代理**:在Linux内核补丁支持下,HAProxy可以以客户端IP或任何其他地址连接后端服务器,保持服务器地址不变。 3. **高性能优化**:利用O(1)事件检查器、单缓冲机制、splice()系统调用实现零复制转发、...
其他选项,如重试次数(`retries 2`)、转发客户端IP信息(`option forwardfor`,需后端服务器支持)和主动关闭HTTP连接(`option httpclose`),可以根据实际需求进行调整。 HAProxy的配置还包括定义前端...
- **连接记录:**LVS 还会在内部的哈希表中记录此次连接的相关信息,以便后续请求可以被正确地分配到相同的后端服务器上,确保会话的一致性。 **RealServer 配置 VIP 的原因:** 1. **配置在 lo 接口上的原因:**...
为了正确识别真实的客户端IP,我们需要`trust proxy`。 `trust proxy`接受一个布尔值、字符串或数组,定义了哪些代理IP地址或头信息是可信任的。例如,如果我们设置`trust proxy: true`,Express将信任所有代理;若...
6. 日志记录和统计:haproxy可以记录详细的访问日志,方便进行性能分析和故障排查。 7. 动态配置:haproxy支持热更新配置,无需重启服务即可应用新的配置。 在解压haproxy.rar后,用户通常会找到以下文件: - `...
1. **负载均衡算法**:haproxy-1.4.21支持多种负载均衡算法,包括轮询(round-robin)、最少连接(least connections)、源IP哈希(source IP hashing)等,可以根据不同场景选择合适的策略。 2. **健康检查**:...
【MySQL主从复制与Haproxy负载均衡】 MySQL的主从复制是一种常见的数据冗余和高可用性解决方案,它允许...同时,正确配置和优化Haproxy的设置,以及处理好主从数据延迟和连接池问题,对于保障系统的稳定运行至关重要。
5. **负载均衡算法**:haproxy提供了多种负载均衡策略,如轮询(round-robin)、最少连接(minimum connections)、源IP哈希(source IP hash)等。这些算法在`balance.c`中实现。 6. **健康检查**:haproxy可以通过发送...
每个节点的IP地址需要在主机文件中进行记录,以便Mycat能够正确地与它们通信。配置hosts文件是保证服务间通信的基础,应确保每个数据库节点的IP地址与其主机名对应无误。 在配置Mycat时,我们需要创建配置文件,...
- 当 Nginx 不是最前端服务器时,获取不到正确的客户端 IP。 - 后端还有其他负载均衡策略,可能导致请求再次分散。 - 公司网络有多条出口,IP 地址会自动切换,ip_hash 无法有效绑定用户。 2. **nginx_upstream_...
4. **日志记录**:服务器端记录客户端的执行结果,便于后续分析和监控。 #### 二、安装Puppet ##### 2.1 安装需求 安装Puppet前,需确保系统满足以下条件:运行在CentOS 5或更高版本的Linux环境,具备Ruby 1.8.2...
1. **基于Cookie**: 使用Cookie记录客户端Session信息。 2. **基于数据库**: 将Session数据存储在数据库中。 3. **基于Memcached**: 使用Memcached等缓存系统来存储Session信息。 #### 三、MYSQLHA方案 MySQL High...
IP(互联网协议)则负责将数据包发送到正确的目的地。 2. **HTTP/HTTPS协议**:虽然TCP/IP是基础,但网络聊天室通常基于HTTP或HTTPS协议进行通信。HTTP是超文本传输协议,用于传输网页内容;HTTPS是HTTP的安全版本...