F5中開啓AutoMap,並傳遞X-Forwarded-For值php
開啓F5源地址轉換"Auto Map"nginx
方式一: 在http profile中開啓X-Forwarded-Forapache
方式二:在iRule中開啓X-Forwarded-For服務器
when HTTP_REQUEST { HTTP::header insert "X-Forwarded-For" [IP::client_addr] }
方案一:使用ISAPI篩選器獲取訪客真實IP。spa
一、下載插件F5XForwardedFor.dll:http://aliyuntool.oss.aliyuncs.com/F5XForwardedFor2008.zip。插件
二、根據本身的版本將x86\Release 或者x64\Release目錄下的F5XForwardedFor.dll拷貝到某個目錄,假設爲C:\F5XForwardedFor\,確保對IIS進程對該目錄有讀取權限。3d
三、確認您的服務器是否安裝如下兩個模塊:(「ISAPI篩選器」 及 「ISAPI和CGI限制」 ):若是未安裝,請按如下步驟進行安裝:日誌
若是未安裝,請按如下步驟進行安裝:code
一、右鍵點擊 」計算機」,選擇 」管理:orm
二、選擇」角色」選項,點擊添加角色服務:
三、選擇「ISAPI 擴展 和ISAPI篩選器」,點擊下一步,進行安裝。
四、添加「ISAPI篩選器」,雙擊「ISAPI篩選器」,點擊添加:
五、填寫篩選器的名稱(沒無特殊要求),選報DLL文件路徑,點擊肯定。
六、雙擊「ISAPI 和CGI限制」,點擊添加,添加內容以下:
七、修改添加的DLL,從「不容許」修改成「容許」。
八、重啓IIS服務器,等待配置生效。
方案二:使用IIS模塊功能獲取訪客真實IP。
一、下載F5XForwardedFor模塊:http://aliyunecs.oss.aliyuncs.com/x_forwarded_for.rar。
二、根據本身的服務器版本將x86\Release 或者x64\Release目錄下的F5XFFHttpModule.dll和F5XFFHttpModule.ini拷貝到某個目錄,假設爲C:\F5XForwardedFor\,確保對IIS進程對該目錄有讀取權限。
三、選擇"IIS服務器"選項,按圖所示選擇"模塊"功能。
四、雙擊「模塊」功能,點擊「配置本機模塊」。
五、在彈出框中點擊「註冊」按鈕。
六、添加下載的DLL文件,以下圖:
七、添加完成後,勾選並點擊「肯定」。
八、把這兩個DLL在 「API 和CGI限制」進行添加,並改成容許。
九、重啓IIS服務器,等待配置生效。
修改配置文件httpd.conf
<IfModule log_config_module>
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" f5_forwarder LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
SetEnvIf X-Forwarded-For "^.*\..*\..*\..*" is-forwarded CustomLog logs/access_log combined env=!is-forwarded CustomLog logs/access_log f5_forwarder env=is-forwarded
</IfModule>
或者添加%{X-Forwarded-For}i(推薦)
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %{X-Forwarded-For}i" combined
修改配置文件nginx.conf
log_format main '$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"' ;
修改配置文件server.xml
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i" %{X-Forwarded-For}i" />
<?php $headers = apache_request_headers(); $real_client_ip = $headers["X-Forwarded-For"]; echo "Your IP: ",$real_client_ip; ?>