問題背景:
我們公司之前由於DDOS***導致網絡出口受影響,經過了解,流量進入亞馬遜是不收錢的,而且不限流量,爲了加強防範網絡***對業務造成影響,在亞馬遜部署一套haproxy代理,把部分業務遷移試用。
爲了使用nginx能獲取到客戶端的ip地址,在haproxy中配置option httpclose和option forwardfor,nginx配置set_real_ip_from x.x.x.x;和real_ip_header X-Forwarded-For;(其中x.x.x.x是haproxy的公網ip地址),觀察日誌發現remote_addr獲取到的是haproxy的ip地址。
這時我們查閱haproxy的官方文檔
在haproxy配置文件backend xxx中加入
option forwardfor header x.x.x.x
重新加haproxy配置文件,觀察nginx訪問日誌,終於可以正常獲取客戶端真實ip了!