日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Apache 反向代理,Laravel获取用户真实IP

發布時間:2025/3/20 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Apache 反向代理,Laravel获取用户真实IP 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • Apache (測試能夠使用)
    • 1. 激活加載remoteip模塊
    • 2. 定義代理與服務
    • 3. 配置Apache日志格式以使用X-Forwarded-For
    • 4. 結論
    • 5. 參考鏈接
  • Nginx (未測試)

好多項目用到 前后端分離 結構,那這個時候就會涉及到反向代理的問題,OK ,那么在實際應用中,laravel 是如何獲取用戶真實的IP 地址呢? 下面就跟我一塊來了解一下吧!!!

Apache (測試能夠使用)

1. 激活加載remoteip模塊

remoteip模塊用于處理useragent,已識別的客戶端,將請求作為實際客戶端地址發起,而不是Apache可能正在接收的可能的負載均衡器,代理或其他前端服務器地址。
這意味著您的Apache Web服務器將覆蓋它作為原始使用者接收的客戶端IP地址,

激活 # a2enmod remoteip

開啟remoteip 模塊

vim apache2.conf 去掉 # LoadModule remoteip_module modules/mod_remoteip.so

2. 定義代理與服務

編輯要修改的web 應用配置

<VirtualHost *:80>ServerAdmin xxxxDocumentRoot "xxxxxx"ServerName xxxxx.comErrorLog "logs/dev.com-error.log"CustomLog "logs/dev.com-access.log" commonProxyRequests OffProxyPass /api http://api.xxx.com/apiProxyPassReverse /api http://api.xxx.com/apiRemoteIPHeader X-Forwarded-For # 添加的內容RemoteIPTrustedProxy 192.168.1.10 # 添加的內容 </VirtualHost>

其中,

  • 添加任意數量的代理定義,以便在使用多個服務或負載平衡器時為來自這些代理的流量配置XFF標頭的使用。添加多個代理的示例
RemoteIPHeader X-Forwarded-For RemoteIPTrustedProxy 192.168.1.10 10.10.0.1
  • 請注意,如果最終用戶在內部網絡中具有IP,則上面使用的RemoteIPTrustedProxy將不起作用。要接受內部網絡IP(如果它符合您的環境需求),您還需要使用以下命令在配置文件中定義代理:
RemoteIPHeader X-Forwarded-For RemoteIPInternalProxy 192.168.1.10

3. 配置Apache日志格式以使用X-Forwarded-For

# vim apache2.conf
在文件中搜索LogFormat行。Apache的標準日志記錄格式如下所示,您可能會在文件中看到類似的內容。

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

此格式使用%h字段捕獲標頭,默認情況下,我們將在示例中使用代理地址。由于我們希望在日志記錄中使用原始客戶端IP地址,因此您必須將LogFormat定義修改為如下所示:

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

請注意我們如何用字段%a替換原始標題字段位置(%h)。這是X-Forwarded-For字段,負責顯示正確的始發客戶端IP地址。只要您具有日志記錄格式定義,請將%h替換為%a以使用X-Forwarded-For。

Apache具有高度可配置性,您可以通過播放XFF標頭字段的位置,進一步修改日志格式,直到它最適合您的格局和Web應用程序。如果對最終格式感到滿意,請保存并退出文件。接下來,您需要重新加載Apache才能使更改生效。

在重新加載服務器之前,您可以使用Apache命令apache2ctl驗證配置中是否有錯誤:
# apache2ctl configtest

如果上一步沒有輸出錯誤,您可以安全地重新加載到新配置以開始使用XFF。使用service命令重新啟動Apache Web服務器:
# service apache2 restart

4. 結論

一旦您的Apache Web服務器重新啟動,它將開始記錄正確的客戶IP地址信息,而不是您可能在您的環境中使用的任何中間人服務。您可以輕松地知道,如果您使用代理或其他類似服務,您的客戶信息數據將100%保留。如果您發現它有用,請與您的朋友分享本教程!

5. 參考鏈接

Apache remoteip 模塊 說明
如何在Apache Web Server中獲取X-Forwarded-For IP地址

Nginx (未測試)

https://www.itread01.com/content/1543308020.html

總結

以上是生活随笔為你收集整理的Apache 反向代理,Laravel获取用户真实IP的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。