2013-04-01 63 views
3

我似乎无法完成此任务。我仍然在我的日志中看到cloudflare IP。目前,我有一个位于Cloudflare后面的负载均衡器。Haproxy Real IP + Cloudflare

目前,这里有到forwardfor相关的块:

option   forwardfor except 127.0.0.1 
option   forwardfor except 204.93.240.0/24 
option   forwardfor except 204.93.177.0/24 
option   forwardfor except 199.27.128.0/21 
option   forwardfor except 173.245.48.0/20 
option   forwardfor except 103.22.200.0/22 
option   forwardfor except 141.101.64.0/18 
option   forwardfor except 108.162.192.0/18 
    option   forwardfor header X-Real-IP 
    reqadd   X-Forwarded-Proto:\ http 

没有任何人有正确的配置一个想法,从CloudFlare的获得真正的IP地址?或者,也许相当于nginx的set_real_ip_from cloudflareIP和/或real_ip_header CF-Connecting-IP到haproxy?谢谢。

回答

2

你实际上应该什么都不做。问题在于你试图插入forwardfor,除了难以管理的cloudflare IP列表,但所有流量都来自cloudflare。

只需取出任何forwardfor选项,cloudflare头将通过haproxy持续。

如果你必须做一些像你一样的尝试,确保添加“选项httpclose”,以确保它总是这样做。

1

你想找的是:

http-request add-header X_FORWARDED_FOR %[req.hdr(CF-Connecting-IP)] 

这将添加正确的CloudFlare源IP。 如果你什么都不做,那么你最终会得到两个地址为src的地址和cloudflare地址。