【问题标题】:Setup store view on different host在不同主机上设置商店视图
【发布时间】:2012-03-15 08:51:28
【问题描述】:

我有一个 Magento 1.4 网上商店,有多个商店视图,每个商店视图都是不同的语言。出于 SEO 目的,我的客户希望在不同的(德国)主机上运行德国商店视图。

为了实现这一点,我已经:

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

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

我已经尝试了一些方法来解决它:

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

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

【问题讨论】:

    标签: magento magento-1.4


    【解决方案1】:

    你的问题...

    两台服务器相距多远?

    如果距离很远,即使使用 100Mbit/1Gbit 连接,延迟也会削弱您的 MySQL 连接,并且这种延迟很可能是导致您出现奇怪问题的原因。这也将影响 Memcache 将提供的任何好处(如果您使用远程 Memcache 实例),几乎是毁灭性的。如果有的话,你应该在每台服务器上运行一个 Memcache 实例。

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

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

    如果不通过隧道传输 - 您会发送敏感的纯文本数据,从而使您的商店和您的客户面临风险。

    最佳和最简单的解决方案

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

    如果没有两个不同的 IP 范围,我只会告诉您的客户观看此内容,即使 Google 表示 IP 地址位置与 SERP 无关。

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

    更复杂的解决方案

    如果您使用的是单个远程数据库服务器,那么在服务器全球多样化的情况下运行分布式存储会带来许多问题(即速度)。

    建议确保您的数据库服务器与服务于您的主要市场的网络服务器位于同一站点;然后在您的二级市场中拥有第二台网络服务器。

    然后,在您的辅助 Web 服务器上,配置一个 MySQL 从属实例并指示 Magento 在本地(从从属服务器)执行所有读取并写入远程服务器。您会导致写入延迟,从属更新也会有相同的情况 - 但这是最​​令人满意的解决方案(如果您坚持以复杂的方式处理它)。

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

    当解决面向多个全球市场并坚持使用单一管理商店视图(而不是在单个 ERP 系统中的多个“馈线”商店)的 Enterprise Magento 商店时,我们将使用这种部署类型。

    【讨论】:

    • 感谢您提供翔实的回答。我刚刚发现了一个似乎导致大多数问题的错误。尽管在 .htaccess 中禁用了 gzipping,但某些页面仍然被压缩。我同意在两个不同的主机上经营同一家商店是个坏主意,我已经告诉我的客户,但无论如何他都希望这样做。服务器之间的距离在 100 英里以内,我没有为 Mysql 使用隧道。我会考虑改用更安全的解决方案。
    • 听起来像是灾难的秘诀:(
    猜你喜欢
    • 1970-01-01
    • 2012-03-13
    • 2017-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-27
    相关资源
    最近更新 更多