我需要一些帮助。目前,我有以下方案:
2048 MB 80GB RAID 10磁盘空间 4倍CPU优先级 5000 GB带宽 CentOS的
(VPS-4) http://www.knownhost.com/vps_packages.html
我的VPS一直在接收大量流量。它甚至在一天内有100万页面浏览量!
尽管很酷,但自从点击率急剧上升以来,我们一直受到各种问题的困扰。
我们最初使用SuPHP,这是资源密集型的。服务器每隔几天就会停机一次,我们会收到关于运行过多进程的自动电子邮件。
然后我们切换到FastCGI。这一直运行良好,我们停止收到这些电子邮件。但是,在高峰时段,如果有很多人连接,那么网页就不会显示。您将不得不刷新页面几次以使其显示(听起来好像所有连接插槽都被挂起)。
我们目前在此服务器上使用NGINX + Apache w / CPANEL + eAccelerator + FastCGI。
忽略当前的设置配置并牢记我们正在使用的硬件,您是否有任何建议的配置可能最适合支持所有这些命中?
请记住,大量的点击发生在一页(不要问!)。该页面几乎没有任何PHP(但部分是动态的,因此需要PHP),甚至连接到数据库。
非常感谢。
答案 0 :(得分:1)
在此期间,我将修改 nginx 配置。 Apache可以保持原样。
第1步:部署gzip压缩
这一步非常简单 - gzip-compress输出。
gzip on;
gzip_min_length 1000;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain application/xml application/json;
所有这一切都将启用gzip压缩:text / html(默认),application / xml,application / json和text / plain。顺便说一句,我假设你正在提供CDN的图像。如果没有,也为他们启用。
这会导致您使用的带宽下降,但会略微降低CPU成本。但是,CPU很少成为瓶颈 - 通常是带宽和磁盘I / O,特别是在静态站点上,因此我们将继续努力。
第2步(可选):如果可以
删除apache如果您只是提供静态内容,那么nginx本身就值得拥有。如果您已经在使用fastCGI,请考虑PHP-FPM,它允许您缩短Apache的内存占用。
第3步:缓存标题
这将通过强制nginx服务的所有页面的本地缓存版本来降低带宽使用率。非常酷的东西,因为它将完全阻止客户重新下载他们已经拥有的东西。
expires 24h;
add_header Cache-Control public;
此步骤也有一个未应用的优势:apache将减少查询次数。
第4步:内存页面缓存
此步骤将使您的页面脱离磁盘I / O并进入内存。如果您有一个静态页面,那么您应该看到一个显着的增益。 this question对此有很多了解。覆盖它将花费大量时间。
这有两个好处:
完成所有这些后,您应该看到负载减少,可能足以降低Apache上的工作人员数量。