查看完整版本: 讓 nginx proxy 代理後端的 apache 獲取訪客真實IP


becky98 2019-1-9 10:57

讓 nginx proxy 代理後端的 apache 獲取訪客真實IP

很多網站都會有偵測使用者 IP 的功能,不管是判斷使用者來自哪邊,或者是記錄使用者的位置。<br><br>而當你使用 nginx proxy 來當代理伺服器後,Apache log 的連線IP都變成 proxy 的IP了<br>不過 proxy 會將真實IP記錄在 Header 的 X-Forwarded-For<br>所以我們可以這樣做...來取的真實IP<br><br>(1)proxy 端的 nginx配置文檔<br>[quote]<br><br>...<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;location / {<br><br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;.....<br><font color="Blue">&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;proxy_set_header Host $host;<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;proxy_set_header X-Real-IP $remote_addr;<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;proxy_set_header REMOTE-HOST $remote_addr;<br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;proxy_set_header X-Forwarded-For $remote_addr;</font><br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;proxy_pass http://111.222.333.444;<br><br>&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;}<br>[/quote]<br><br>(2)源頭 apache 配置 httpd.conf <br><br>添加%{X-FORWARDED-FOR}i<br>Apache日誌配置文檔中定義了兩種打印格式,分別為combined格式和common格式。<br>這邊使用combined格式<br><br>[quote]<br>找到這一行<br>LogFormat "%h %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined<br><br>將 %h 用 %{X-FORWARDED-FOR}i 取代<br><font color="Blue">LogFormat "%{X-FORWARDED-FOR}i %l %u %t \"%r\" %&gt;s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined</font><br>[/quote]<br><br>(3)虛擬機配置<br>[quote]<br>&lt;VirtualHost *:80&gt;<br>&nbsp; &nbsp; ...<br><font color="Blue">&nbsp; &nbsp; CustomLog logs/all-web-log.com.tw.access.log combined</font><br>&lt;/VirtualHost&gt;<br>[/quote]<br><br>httpd 重啟後就可以囉~<br><br>後端Apache日誌獲取前端Nginx反向代理的真實IP地址<br><a href="https://hk.saowen.com/a/d4fc4dca5fc038b2f4e2107b5acf2b6b192793a78c393c02b592ce51a2611e89" target="_blank">https://hk.saowen.com/a/d4fc4dca5fc038b2f4e2107b5acf2b6b192793a78c393c02b592ce51a2611e89</a>
頁: [1]
查看完整版本: 讓 nginx proxy 代理後端的 apache 獲取訪客真實IP