繁体   English   中英

如何使用清漆页面缓存在magento上启用geoip

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM