好的Magento单服务器解决scheme?

我正在设置一个Debian服务器,使用Mysql来提供Magento。 预计会有高负荷(每天点击数百万次)。 我一直在阅读不同的人的意见,发现了很多不同的设置,但我不知道如果我想要做什么。 多个服务器之间的负载平衡当然是好的,但我只有一个服务器。 那么这个怎么样?

nginx和apache之前进行清漆,其中nginx只做静态数据和apachedynamic。

或者将清漆放在阿帕奇面前会更好? 所以nginx是在前面,有静态数据直接服务nginx和dynamicapache页面通过清漆?

我想不出有什么理由(除了故意的错误configuration),这将使你的build议设置A.比你提出的build议更好或更差B.

你有一个特定的问题,你希望通过把清漆放在Apache面前解决? 或者在nginx前面清漆?

如果你不这样做,你就成了货物邪教系统pipe理的牺牲品:

“这个人很成功,他在nginx和Apache之前使用了Varnish,所以如果我在nginx和Apache之前使用Varnish,我也会成功的。

stream量很less到达,所以你没有时间计划如何处理。 你有没有一个能够推动这么多stream量的计划(比如,斯蒂芬·弗莱已经答应他会在你的网站上马上发布推特信息),还是你非常乐观? 如果没有,只需要在线和工作的东西。 不成熟的优化是万恶之源。 一旦您知道您的stream量是什么样子以及您的瓶颈在哪里,您将有足够的时间优化网站。

简单通常更好 。 如果你可以抛弃你提到的三种不同的networking服务软件中的一种或两种,你可能会发现服务器上的CPU使用率和内存使用率显着降低。 也许CPU和内存的使用你的瓶颈。

有些事情可能会影响到你能够处理多lessstream量

  1. 注意你的MySQL缓慢的日志,并调整查询和索引,直到缓慢的查询消失。
  2. 确保你正确地设置你的caching头。

TL;博士

不要担心交通,直到你有一些。

首先,我完全同意Ladadadada的回答,

  • 不成熟的优化是万恶之源
  • 更简单通常更好,主要是

你不应该优化,因为你可以获得更多的stream量。 优化,当你需要优化,即当你现在遇到交通高峰,或当你definitley知道,将有巨大的交通高峰(如营销行动)。

最重要的是:分析你的系统! 在你的优化之前(以及之后)做基准testing。 您必须知道,您的瓶颈究竟是什么以及要优化什么。

而现在,Magento的具体部分… 🙂

虽然如果我坚持Ladadadada的意见,你不应该只遵循一个(nother)货物崇拜我build议安装清漆。

为什么? 因为没有优化,标准的Magento安装不是很快。 好吧,它往往是缓慢的国王。

怎么办,加快Magento:

  • 安装APCcaching
  • 使用Memcached作为快速的Magento后端
  • 把你的Magentocaching文件放到RAM磁盘(tmpfs)
  • 把Varnish放在你的web服务器软件(Apache或者nginx,只要你使用Varnish并不重要)来caching静态内容和完整的页面(比如Magento Enterprise的Fullpage Cache)

为了高效地使用Varnish,你必须调整Magento,以便完整的页面可以被caching,dynamic部分(例如cart小部件)将被客户端浏览器(使用JavaScript)另外加载。

还有一个模块可用于: http : //www.magentocommerce.com/magento-connect/pagecache-powered-by-varnish.html

不过,如果您计划大幅增加stream量,我还build议您至less再添加2台服务器。

仅使用一台服务器就是…嗯 – 我能想到的完美SPOF(单点故障)。 :)使用多个服务器不仅仅是负载平衡和缩放。 这是关于高可用性。 如果您的单个服务器无法处理stream量/负载,会发生什么情况? 是的,它会下降,你的店铺离线,大量的新客户将无法看到你的好产品 – 事实上,他们会看到一些丑陋的错误消息。 所以基本上,…你会很拧。

在优化单台服务器以获得最佳性能之前,您应该计划并设置故障切换策略。

也许只有两台服务器? 他们每个人都有一个Web应用程序堆栈和数据库? 或三个服务器,…两个Web应用程序节点和一个专用的数据库服务器? 最好是4,…两个webapp节点和2个数据库节点。

不pipe它看起来如何,但是你必须消除你的单点故障。

祝你一切顺利,…(交通)成长的痛苦是最好的痛苦。 ;)

那么,我不确定没有人知道你有什么可靠的build议。

  1. 这是为了一家商店,或多家商店(倒卖)?
  2. 什么是完全确切的服务器规范?
  3. 您的stream量目标是什么(点击率,综合浏览量,带宽承诺)?
  4. 客户是否主要search或浏览类别?

我们给客户的build议…

如果你需要重新出售托pipe

Nginx> Apache> PHP-FPM

这为您的客户提供了.htaccess支持,来自PHP-FPM的安全性(chroot / multiple php.inis)以及来自Nginx的静态文件性能。

如果只是为了你

磅>清漆> Nginx> PHP-FPM

这使您可以从庞德进行SSL解包,从Varnish进行静态和dynamic(ESI)caching,从Nginxcaching未caching的静态内容以及从PHP-FPM

如果你对清漆没有真正的经验

Apache> PHP-FPM

事实是,如果你没有正确设置(caching的私人会话,不需要的cookie取消设置),你可以做更多的伤害比清漆更好。 这同样适用于Nginx。

读一下这个http://www.sonassi.com/knowledge-base/magento-kb/mythbusting/why-shouldnt-i-use-nginx-for-magento/

哦,避免任何事情tmpfs,它不会增加性能。

阅读这些了解更多信息…

  1. http://magebase.com/magento-tutorials/magento-session-storage-which-to-choose-and-why/comment-page-1/#comment-1986

我最后的build议,咨询一个专业人士 – 它的钱花的好。