在不同主机上设置商店视图

时间:2012-03-15 08:51:29

标签: magento magento-1.4

我有一个Magento 1.4网上商店,有多个商店视图,每个商店视图都是另一种语言。出于搜索引擎优化的目的,我的客户想要在不同的(德国)主机上运行德国商店视图。

要做到这一点,我已经:

  • 将所有代码克隆到第二个(德国)服务器。
  • 修改了德语服务器上的index.php,以便启动正确的商店视图
  • 设置cronjob以每小时同步/ media文件夹
  • 让德国商店使用主数据库连接(共享数据库)

一切似乎都运行良好,但不同的客户报告有内部服务器错误,有时第一次访问时会显示乱码(二进制)文本。重新加载一两次后,一切都会再次运行。

我已经尝试过一些方法来修复它:

  • 在两台服务器上禁用gzip
  • 设置memcache,让德国商店连接到主商店

似乎没什么用。所以我想知道,有一种官方/“正确”的方式,使用社区版在多个主机上共享一个网店。如果有,我可能做错了什么?

1 个答案:

答案 0 :(得分:1)

您的问题......

这两台服务器的距离是多远?

如果相当远,即使使用100Mbit / 1Gbit连接,延迟也会削弱您的MySQL连接,并且这种延迟很可能是造成您奇怪问题的原因。这也将破坏Memcache将提供的任何好处(如果您正在使用远程Memcache实例)。如果有的话,你应该在每台服务器上运行一个Memcache实例。

您是否通过SSH(Xinetd /持久SSH隧道等)挖掘了MySQL?

安全性很好,但压缩会增加开销。另外请记住,使用Xinetd会为连接打开/关闭增加额外的延迟。

如果没有隧道 - 您通过发送敏感的纯文本数据,使您的商店和客户面临风险。

最好的&最简单的解决方案

好吧,我最初的建议是不要在两个不同的主机上运行商店。但是找到一个主机可以在两个不同的子网上为您呈现IP,在同一个数据中心呈现(我假设您的客户关注的是IP地理定位)。然后你可以保留1个代码库。

如果没有两个不同的IP范围,我会告诉您的客户注意这一点,即使Google说IP地址与SERP无关。

http://www.youtube.com/watch?v=keIzr3eWK8I&noredirect=1

更复杂的解决方案

如果您使用单个远程数据库服务器,则运行服务器全局不同的分布式存储会引入一系列问题(即速度)。

建议您确保数据库服务器与适合您主要市场的Web服务器位于同一站点;然后在二级市场上建立第二个Web服务器。

然后,在辅助Web服务器上,配置MySQL从属实例并指示Magento在本地(从从属服务器)执行所有读取并写入远程服务器。您将在写入时产生延迟,并且从属更新将具有相同的 - 但它是最令人满意的解决方案(如果您坚持以复杂的方式接近它)。

在两台Web服务器前使用Varnish实例有助于缓解任何性能问题,并为最终用户提供全方位的愉悦体验。

这是我们在处理面向多个全球市场的企业Magento商店时所使用的部署类型,并坚持使用单一管理商店视图(而不是在单个ERP系统中使用多个“支线”商店)。