我目前在线拥有3个不同域名的3个商店,运行带有Apache的清洁工具和使用在centos上运行的清漆(使用Phoenix页面缓存扩展程序)
一家商店为英国,另一家为爱尔兰,另一家为美国
麻烦是(示例)如果美国用户访问英国商店,我希望通知用户转到页面上的正确商店,(我不希望他们自动重定向)
我能够通过maxmind数据库使用php-pecl-geoip来实现这一点,但随着我网站上的用户增加,我不得不开始使用清漆。
我如何使用varnish实现此功能,以便了解用户所在的国家/地区,以便向用户显示一条消息以查看其相关网站?
答案 0 :(得分:0)
您可以在Magento中使用JSON Action Result创建Crontroller。 然后你可以用JavaScript检查这些并输出结果。
不要忘记将您的控制器添加到Varnish中的列表中。
答案 1 :(得分:0)
古巴,我想你错过了这一点。 当将Varnish放在Apache之前时,PHP将看到的客户端IP将始终是Varnish的IP(如果它保留在同一服务器中则为127.0.0.1)。
molleman,在这种情况下,您需要查看由Varnish设置的X-Forwarded-For标头以获取真实的客户端IP。你可以看看Varnish如何在default.vcl中设置它:
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 removes Public IP from X-Forwarded-for