IIS、apache、nginx日志中如何獲取用戶的真實IP?


IIS 6 配置方案、IIS 7 配置方案、Apache 配置方案、Nginx 配置方案、Tomcat 配置方案

 

IIS 6日志中獲取訪客真實IP的解決方案 

需要安裝插件F5XForwardedFor.dll:

1、下載與安裝:http://aliyuntool.oss.aliyuncs.com/F5XForwardedFor2008.zip。

2、根據自己的版本將x86\Release 或者x64\Release目錄下的F5XForwardedFor.dll拷貝到某個目錄,假設為C:\ISAPIFilters,確保對IIS進程對該目錄有讀取權限。

3、打開IIS管理器,找到當前開啟的網站,在該網站上右鍵選擇“屬性”,打開屬性頁。

4、屬性頁切換至“ISAPI篩選器”,點擊“添加”按鈕,出現添加窗口。

5、在添加窗口:“篩選器名稱”填寫“F5XForwardedFor”,“可執行文件”填寫F5XForwardedFor.dll的完整路徑。

6、點擊確定,然后重啟IIS服務器。

 

IIS 7日志中獲取訪客真實IP的解決方案 

方案一:使用ISAPI篩選器獲取訪客真實IP
方案二:使用IIS模塊功能獲取訪客真實IP

 

方案一、需要安裝插件F5XForwardedFor.dll:

1、下載與安裝:http://aliyuntool.oss.aliyuncs.com/F5XForwardedFor2008.zip

2、根據自己的版本將x86\Release 或者x64\Release目錄下的F5XForwardedFor.dll拷貝到某個目錄,假設為C:\F5XForwardedFor\,確保對IIS進程對該目錄有讀取權限。

3、確認您的服務器是否安裝以下兩個模塊:(“ISAPI篩選器” 及 “ISAPI和CGI限制” ):如果未安裝,請按以下步驟進行安裝: 

如果未安裝,請按以下步驟進行安裝:

1、右鍵點擊 ”計算機”,選擇 ”管理:

2、選擇”角色”選項,點擊添加角色服務: 

3、選擇“ISAPI 擴展 和ISAPI篩選器”,點擊下一步,進行安裝。 

4、添加“ISAPI篩選器”,雙擊“ISAPI篩選器”,點擊添加:

5、填寫篩選器的名稱(沒無特殊要求),選報DLL文件路徑,點擊確定。 

6、雙擊“ISAPI 和CGI限制”,點擊添加,添加內容如下: 

7、修改添加的DLL,從“不允許”修改為“允許”。 

8、重啟IIS服務器,等待配置生效。

 

方案二、需要使用F5XForwardedFor模塊:

1、下載:http://aliyunecs.oss.aliyuncs.com/x_forwarded_for.rar

2、根據自己的服務器版本將x86\Release 或者x64\Release目錄下的F5XFFHttpModule.dll和F5XFFHttpModule.ini拷貝到某個目錄,假設為C:\F5XForwardedFor\,確保對IIS進程對該目錄有讀取權限。

3、選擇"IIS服務器"選項,按圖所示選擇"模塊"功能。 

4、雙擊“模塊”功能,點擊“配置本機模塊”。 

5、在彈出框中點擊“注冊”按鈕。 

6、添加下載的DLL文件,如下圖: 

7、添加完成后,勾選並點擊“確定”。

8、把這兩個DLL在 “API 和CGI限制”進行添加,並改為允許。 

9、重啟IIS服務器,等待配置生效。

 

Apache日志中獲取訪客真實IP的解決方案

Windows 2003 Server + Apache 解決方案:

1、打開文件:\apache\conf\httpd.conf。

2、在文件中查找:”CustomLog”,找到如下配置塊: 查看到當前使用的LogFormat為”combined”(如果實際啟用的為其他日志格式,替換相應的格式定義即可)。

3、在文件中查找:”LogFormat”,找到如下配置塊(combined格式定義):

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

將其修改為:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"  \"%{X-Forwarded-For}i\"" combined

4、保存並關閉文件\apache\conf\httpd.conf。

5、重啟Apache服務。

 

Linux + Apache 解決方案:

1、打開文件:/etc/httpd/conf/httd.conf。

2、在文件中查找:”CustomLog”,找到如下配置塊: 查看到當前使用的LogFormat為”combined” (如果實際啟用的為其他日志格式,替換相應的格式定義即可)。

#
# For a single logfile with access, agent, and referer information
# (Combined Logfile Format), use the following directive:
#
CustomLog  logs/access_log combined

3、在文件中查找:”LogFormat”,找到如下配置塊(combined格式定義):

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

將其修改為:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"%{X-Forwarded-For}i\" " combined

4、保存並關閉文件/etc/httpd/conf/httd.conf。

5、重啟Apache服務。

 

Nginx日志中獲取訪客真實IP的解決方案

解決方案如下:

1、打開文件:/etc/nginx/nginx.conf。

2、在文件中查找:”CustomLog”,找到如下配置塊:

server {
        listen   80; ## listen for ipv4
        listen   [::]:80 default ipv6only=on; ## listen for ipv6
        server_name  localhost;
        access_log  /var/log/nginx/localhost.access.log main;

3、將access_log這一行替換為如下內容:

log_format main '$remote_addr - $remote_user [$time_local] '
                '"$request" $status $body_bytes_sent "$http_referer" '
               '"$http_user_agent" "$http_x_forwarded_for"' ;
  access_log /var/log/nginx/localhost.access.log  main;

4、保存並關閉文件/etc/nginx/nginx.conf。

5、重啟Nginx服務。

 

Tomcat 日志中獲取訪客真實IP的解決方案 

1、修改tomcat的server.xml,如:vi /usr/local/tomcat7/conf/server.xml。

2、修改pattern為pattern='%{X-Forwarded-For}i %h %l %u %t "%r" %s %b',則會記錄headers頭中的X-Forwarded-For信息。

3、然后重啟tomcat即可。

 

測試結果如下:

本次測試中100.97是修改前的slb內網地址,182.92是修改后的獲取的真實地址。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM