2013-10-19 29 views
1

Magento的geoip的我公司目前有3家网上商店有3个不同的域,运行的Magento与Apache和清漆(使用凤凰页面缓存扩展名)在CentOS如何启用与清漆页面缓存

一家商店是英国运行,另一个为爱尔兰和另一个为美国

麻烦是(示例)如果美国用户访问英国商店,我希望用户被通知去网页上的正确的商店,(我不希望他们自动重定向)

我能够使用maxmind数据库的php-pecl-geoip来获得此功能,但作为我的用户,我们bsite增加了,我不得不开始使用清漆。

我如何才能在清漆上实现此功能,因此我知道用户来自哪个国家,以便我可以向用户显示一条消息以查看其相关网站?

回答

0

古娜,我想你错过了这里的观点。 当把清漆放在Apache前面时,PHP会看到的客户端IP永远是Varnish的IP(如果它停留在同一台服务器上,则为127.0.0.1)。

molleman,在这种情况下,您需要查看Varnish设置的X-Forwarded-For标头以获取真实的客户端IP。你可以看到光油如何将其设置在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

+0

如果是这种情况,您可能需要mod_rpaf(用于Apache 2.2)或mod_proxy(用于Apache 2.4),那么您会在'$ _SERVER ['REMOTE_ADDR' ']'在PHP中。 – chmac

0

你可以用Magento中的JSON Action Result创建你的Crontroller。 然后你可以检查这些与JavaScript并输出结果。

不要忘记将您的控制器添加到清漆中的清单。