2016-01-24 47 views
2

我在Apache 2.4.18上使用mod_proxy_wstunnel。因此,所有的請求都在WebSocket的服務器代碼在使用mode_proxy_wstunnel時獲取客戶端IP

wss://url.com ==> ws://10.22.22.12:12345 

轉發,我用

​​

獲取客戶端的IP地址,但是,IP總是出人意料它顯示了服務器的IP,即:10.22.22.12 它沒有代理正常工作。那麼,有沒有辦法在使用mod_proxy_wstunnel的時候獲得客戶端的IP而不是服務器?

回答

0

看着websocket連接的標題後,我發現下面的字符串。

GET/HTTP/1.1 
Host: 145.24.35.40:12345 
Pragma: no-cache 
Cache-Control: no-cache 
Origin: https://www.domain.com 
Sec-WebSocket-Version: 13 
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36 
Accept-Encoding: gzip, deflate, sdch 
Accept-Language: en-US,en;q=0.8,id;q=0.6 
Cookie: __zlcmid=Y7fAKwRoP7ssZA; _ga=GA1.2.259560791.1452107273 
Sec-WebSocket-Key: w8Mp2n2lp6R5vnYaeEWsPw== 
Sec-WebSocket-Extensions: permessage-deflate; client_max_window_bits 
X-Forwarded-For: 22.22.22.22  <<=== Your IP 
X-Forwarded-Host: ws.domain.com 
X-Forwarded-Server: ws.domain.com 
Upgrade: WebSocket 
Connection: Upgrade 

X-Forwarded-For包含我正在尋找的東西。但我不確定它是否是實現目標的正確方法。我會去爭取它,直到有更好的解決方案。