午夜福利院在线观看免费,天堂最新版在线,色噜噜精品一区二区三区,无码一区二区三区中文字幕,丝袜美腿一区二区三区

使用CDN后獲取用戶真實(shí)IP詳細(xì)教程

本章節(jié)介紹了不同類型的Web應(yīng)用服務(wù)器(包括Tomcat、Apache、Nginx、IIS 6和IIS 7)如何獲取客戶端的真實(shí)IP。

背景信息

網(wǎng)站接入CDN加速后,源站服務(wù)器端從IP頭部獲取的用戶訪問IP不是客戶端的真實(shí)IP。當(dāng)您因?yàn)闃I(yè)務(wù)需要獲取客戶端真實(shí)IP時(shí),可以通過配置網(wǎng)站服務(wù)器獲取客戶端的真實(shí)IP。

代理服務(wù)器(CDN、WAF等)在把用戶的HTTP、WebSocket、WSS請(qǐng)求轉(zhuǎn)到下一環(huán)節(jié)的服務(wù)器時(shí),會(huì)在頭部中加入一條“X-Forwarded-For”記錄,用來記錄用戶的真實(shí)IP,其形式為“X-Forwarded-For:客戶端的真實(shí)IP,代理服務(wù)器1-IP, 代理服務(wù)器2-IP,代理服務(wù)器3-IP,……”。

因此,您可以通過獲取“X-Forwarded-For”對(duì)應(yīng)的第一個(gè)IP來得到客戶端的真實(shí)IP。

Nginx如何在訪問日志中獲取客戶端真實(shí)IP

如果您的源站部署了Nginx反向代理,可通過在Nginx反向代理配置Location信息,后端Web服務(wù)器即可通過類似函數(shù)獲取客戶的真實(shí)IP地址。

  • 根據(jù)源站Nginx反向代理的配置,在Nginx反向代理的相應(yīng)location位置配置如下內(nèi)容,獲取客戶IP的信息。

Location ^ / {
proxy_pass ….;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

  • 后端Web服務(wù)器通過類似函數(shù)獲取客戶的真實(shí)IP。
request.getAttribute("X-Forwarded-For")

Tomcat如何在訪問日志中獲取客戶端真實(shí)IP

如果您的源站部署了Tomcat服務(wù)器,可通過啟用Tomcat的X-Forwarded-For功能,獲取客戶端的真實(shí)IP地址。

  • 打開“server.xml”文件(“tomcat/conf/server.xml”),AccessLogValve日志記錄功能部分內(nèi)容如下:
<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%h %l %u %t "%r" %s %b"/>
  • 在pattern中增加“%{X-Forwarded-For}i”,修改后的server.xml為:
<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%{X-Forwarded-For}i %h %l %u %t "%r" %s %b" />
</Host>
  • 查看“l(fā)ocalhost_access_log”日志文件,可獲取X-Forwarded-For對(duì)應(yīng)的訪問者真實(shí)IP。

Apache如何在訪問日志中獲取客戶端真實(shí)IP

如果您的源站部署了Apache服務(wù)器,可通過運(yùn)行命令安裝Apache的第三方模塊mod_rpaf,并修改“http.conf”文件獲取客戶IP地址。

  • 執(zhí)行以下命令安裝Apache的一個(gè)第三方模塊mod_rpaf。
wget https://github.com/gnif/mod_rpaf/archive/v0.6.0.tar.gz
tar xvfz mod_rpaf-0.6.tar.gz
cd mod_rpaf-0.6
/usr/local/apache/bin/apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c
  • 打開“httpd.conf”配置文件,并將文件內(nèi)容修改為如下內(nèi)容:
LoadModule rpaf_module   modules/mod_rpaf-2.0.so ##加載mod_rpaf模塊
<IfModule mod_rpaf.c>
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1 <反向代理IPs>
RPAFheader X-Forwarded-For 
</IfModule>
  • 定義日志格式。
LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" common
  • 啟用自定義格式日志。
CustomLog "/[apache目錄]/logs/$access.log" common
  • 重啟Apache,使配置生效。
/[apached目錄]/httpd/bin/apachectl restart
  • 查看“access.log”日志文件,可獲取X-Forwarded-For對(duì)應(yīng)的客戶端真實(shí)IP。

IIS 6如何在訪問日志中獲取客戶端真實(shí)IP

如果您的源站部署了IIS 6服務(wù)器,您可以通過安裝“F5XForwardedFor.dll”插件,從IIS 6服務(wù)器記錄的訪問日志中獲取客戶端真實(shí)的IP地址。

  1. 下載F5XForwardedFor模塊。
  2. 根據(jù)您服務(wù)器的操作系統(tǒng)版本將“x86\Release”或者“x64\Release”目錄中的“F5XForwardedFor.dll”文件拷貝至指定目錄(例如,“C:\ISAPIFilters”),同時(shí)確保IIS進(jìn)程對(duì)該目錄有讀取權(quán)限。
  3. 打開IIS管理器,找到當(dāng)前開啟的網(wǎng)站,在該網(wǎng)站上右鍵選擇“屬性”,打開“屬性”頁面。
  4. 在“屬性”頁面,切換至“ISAPI篩選器”,單擊“添加”,在彈出的窗口中,配置如下信息:
    • 篩選器名稱”:“F5XForwardedFor”;
    • 可執(zhí)行文件”:“F5XForwardedFor.dll”的完整路徑,例如:“C:\ISAPIFilters\F5XForwardedFor.dll”
  5. 單擊“確定”,重啟IIS 6服務(wù)器。
  6. 查看IIS 6服務(wù)器記錄的訪問日志(默認(rèn)的日志路徑為:“C:\WINDOWS\system32\LogFiles\ ”,IIS日志的文件名稱以“.log”為后綴),可獲取X-Forwarded-For對(duì)應(yīng)的客戶端真實(shí)IP。

IIS 7如何在訪問日志中獲取客戶端真實(shí)IP

如果您的源站部署了IIS 7服務(wù)器,您可以通過安裝“F5XForwardedFor”模塊,從IIS 7服務(wù)器記錄的訪問日志中獲取客戶端真實(shí)的IP地址。

  1. 下載F5XForwardedFor模塊。
  2. 根據(jù)服務(wù)器的操作系統(tǒng)版本將“x86\Release”或者“x64\Release”目錄中的“F5XFFHttpModule.dll”和“F5XFFHttpModule.ini”文件拷貝到指定目錄(例如,“C:\x_forwarded_for\x86”或“C:\x_forwarded_for\x64”),并確保IIS進(jìn)程對(duì)該目錄有讀取權(quán)限。
  3. 在IIS服務(wù)器的選擇項(xiàng)中,雙擊“模塊”,進(jìn)入“模塊”界面。
  4. 單擊“配置本機(jī)模塊”,在彈出的對(duì)話框中,單擊“注冊(cè)”。
    使用CDN后獲取用戶真實(shí)IP詳細(xì)教程插圖
  5. 在彈出的對(duì)話框中,按操作系統(tǒng)注冊(cè)已下載的DLL文件后,單擊“確定”。
    • x86操作系統(tǒng):注冊(cè)模塊“x_forwarded_for_x86”
      • 名稱:x_forwarded_for_x86
      • 路徑:“C:\x_forwarded_for\x86\F5XFFHttpModule.dll”使用CDN后獲取用戶真實(shí)IP詳細(xì)教程插圖1
    • x64操作系統(tǒng):注冊(cè)模塊“x_forwarded_for_x64”
      • 名稱:x_forwarded_for_x64
      • 路徑:“C:\x_forwarded_for\x64\F5XFFHttpModule.dll”使用CDN后獲取用戶真實(shí)IP詳細(xì)教程插圖2
  6. 注冊(cè)完成后,勾選新注冊(cè)的模塊(“x_forwarded_for_x86”或“x_forwarded_for_x64”)并單擊“確定”。
  7. 在“ISAPI和CGI限制”中,按操作系統(tǒng)添加已注冊(cè)的DLL文件,并將其“限制”改為“允許”。
    • x86操作系統(tǒng):
      • ISAPI或CGI路徑:“C:\x_forwarded_for\x86\F5XFFHttpModule.dll”
      • 描述:x86
    • x64操作系統(tǒng):
      • ISAPI或CGI路徑:“C:\x_forwarded_for\x64\F5XFFHttpModule.dll”
      • 描述:x64
  8. 重啟IIS 7服務(wù)器,等待配置生效。
  9. 查看IIS 7服務(wù)器記錄的訪問日志(默認(rèn)的日志路徑為:“C:\WINDOWS\system32\LogFiles\ ”,IIS日志的文件名稱以“.log”為后綴),可獲取X-Forwarded-For對(duì)應(yīng)的客戶端真實(shí)IP。

給TA打賞
共{{data.count}}人
人已打賞
0 條回復(fù) A文章作者 M管理員
    暫無討論,說說你的看法吧
在線客服
主機(jī)邦
我們將24小時(shí)內(nèi)回復(fù)。
2025-05-18 10:52:48
您好,有任何疑問請(qǐng)與我們聯(lián)系!
您的工單我們已經(jīng)收到,我們將會(huì)盡快跟您聯(lián)系!
取消

選擇聊天工具: