解決haproxy代理nginx獲取客戶端真實ip問題

問題背景:

        我們公司之前由於DDOS***導致網絡出口受影響,經過了解,流量進入亞馬遜是不收錢的,而且不限流量,爲了加強防範網絡***對業務造成影響,在亞馬遜部署一套haproxy代理,把部分業務遷移試用。

wKioL1drZeyxEL5mAAA1K9OBwBc668.png-wh_50

爲了使用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的官方文檔

wKioL1drbGGTeJhRAABktkXZRw8298.png-wh_50

wKiom1drbGKTB8KwAABJlveXLEg236.png-wh_50

在haproxy配置文件backend xxx中加入

option forwardfor header x.x.x.x

重新加haproxy配置文件,觀察nginx訪問日誌,終於可以正常獲取客戶端真實ip了!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章