[英]How to Enable geoip on magento with varnish page cache
我目前在線擁有3個具有3個不同域的商店,並在centos上運行Apache和varnish(使用Phoenix頁面緩存擴展名)的magento
一家商店在英國,另一家在愛爾蘭,另一家在美國
麻煩是(示例)如果某個美國用戶訪問了uk store,我希望收到通知該用戶轉到頁面上的正確商店,(我不希望他們被自動重定向)
我能夠使用maxmind數據庫進行php-pecl-geoip使其工作,但是隨着我網站上用戶的增加,我不得不開始使用清漆。
如何使用清漆實現此功能,以便知道用戶來自哪個國家/地區,以便向用戶顯示消息以查看其相關網站?
您可以在Magento中使用JSON操作結果創建Crontroller。 然后您可以使用JavaScript檢查這些內容並輸出結果。
不要忘記將您的控制器添加到Varnish的withlist中。
古納(Gunah),我想您錯過了這里的重點。 當將Varnish放在Apache的前面時,PHP將看到的客戶端IP將始終是Varnish的IP(如果位於同一服務器中,則為127.0.0.1)。
molleman,在這種情況下,您需要查看Varnish設置的X-Forwarded-For標頭,以獲得真實的客戶端IP。 您可以在default.vcl中查看Varnish的設置方式:
if (req.http.x-forwarded-for) {
set req.http.X-Forwarded-For =
req.http.X-Forwarded-For + ", " + client.ip;
} else {
set req.http.X-Forwarded-For = client.ip;
}
如果您的Web服務器在負載均衡器后面,那么您需要做更多的工作。 請參閱此處以獲取解決方案: Varnish從X-Forwarded-for中刪除了公共IP
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.