HAProxy客戶端IP位址的透傳 Masuri

2022-09-23 06:30:17 字數 1700 閱讀 3754

haproxy客戶端ip位址的透傳

環境準備

server

ipclient

172.20.27.10

haproxy

172.20.27.20,192.168.27.10

nginx

192.168.27.21

nginx操作

1.首先對nginx的主配置中的日誌做修改

[root@nginx ~]# vim /apps/nginx/conf/nginx.conf

log_format access_json '';2.在server段配置檔案中呼叫此日誌格式

[root@nginx ~]# vim /apps/nginx/conf/servers/mylinuxops.conf

server

}配置haproxy(http透傳)

未使用http透傳前

[root@nginx ~]# tail /apps/nginx/logs/mylinuxops.log

#xff顯示為"-"修改haproxy配置檔案,使用http模式下的ip透傳

[root@haproxy ~]# vim /etc/haproxy/haproxy.cfg

listen web

bind 172.20.27.20:80

mode http #模式改為http

option forwardfor #開啟forwardfor選項

server web1 www.mylinuxops.com:80 check inter 3000 fall3 rise 5測試使用客戶端訪問

[root@client ~]# curl www.mylinuxops.com

www.mylinuxops.com檢視nginx上的日誌

[root@nginx ~]# tail -f /apps/nginx/logs/mylinuxops.log

#"xff":"172.20.27.10" 客戶端的位址被透傳過來了

配置haproxy(tcp透傳)

1.修改haproxy配置檔案

[root@haproxy ~]# vim /etc/haproxy/haproxy.cfg

listen web

bind 172.20.27.20:80

mode tcp #將mode改為tcp

option forwardfor #開啟forwardfor選項

server web1 www.mylinuxops.com:80 send-proxy check inter 3000 fall 3 rise 5 #在定義後端服務時加上 send-proxy引數。2.修改nginx的配置檔案

[root@nginx ~]# vim /apps/nginx/conf/servers/mylinuxops.conf

server

}測試使用客戶端訪問

[root@client ~]# curl www.mylinuxops.com

www.mylinuxops.com在nginx上檢視日誌

[root@nginx ~]# tail -f /apps/nginx/logs/mylinuxops.log

#"tcp_xff":"172.20.27.10" 客戶端的位址在tcp的模式下被傳送過來

獲取客戶端IP位址

title generating test data author wufeng4552 date 2009 09 23 10 34 02 功能 獲客戶 ip位址 if object id getclientip isnot null drop proc getclientip go create ...

客戶端獲取IP位址

string ip request.getheader x forwarded for string regex 2 0 4 d 25 0 5 01 d d?2 0 4 d 25 0 5 01 d d?if ip null ip.length 0 ip.equalsignorecase locali...

客戶端的IP位址也是真實的IP位址

getenv remote addr 用來取得客戶端的 ip 位址,但如果客戶端是使用 伺服器來訪問,那取到的就是 伺服器的 ip 位址,而不是真正的客戶端 ip 位址。要想透過 伺服器取得客戶端的真實 ip 位址,就要使用 getenv http x forwarded for 來讀取。但是如果客...