🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 每台服务器将 PHP 扩展到 30,000 个并发用户的 5 条 Rockin'Tips > 原文: [http://highscalability.com/blog/2013/7/3/5-rockin-tips-for-scaling-php-to-30000-concurrent-users-per.html](http://highscalability.com/blog/2013/7/3/5-rockin-tips-for-scaling-php-to-30000-concurrent-users-per.html) ![](https://img.kancloud.cn/49/78/497876c400a611c528b6d9b132c49cf7_220x80.png) [众筹公司 RockThePost.com 的首席技术官 Jonathan Block](http://www.linkedin.com/pub/jonathan-block/57/a70/b02) 为较小的站点编写了一套不错的技巧,以帮助他们了解如何使用 一个小的两人开发团队。 他们的服务具有典型的小规模结构: * PHP 的 Zend Framework 2 * 两个用于 Web 服务器的 m1.medium * ELB 拆分负载 * 主/从 MySQL 数据库 * 围攻进行负载测试 每个 Web 服务器可以处理 30,000 个并发用户的非常明智的技巧: * **使用 PHP 的 APC 功能**。 APC 是操作码缓存,“ 确实是一个要求,以便网站有机会表现良好。” * **将不是.php 请求的所有内容放在 CDN** 上。 不要从您的 Web 服务器提供静态文件。 他们将所有内容放到 S3 上,并使用 CloudFront 作为 CDN。 最近的 CloudFront 问题导致它们直接从 S3 服务。 * **不要使用 PHP 代码**与其他服务器建立连接。 与其他服务器建立连接会阻塞服务器并减慢处理速度。 使用 APC 键/值存储区进行数据存储,使用 Varnish 缓存整页。 * **使用清漆**。 在负载测试下,使用清漆法师对其性能的最大不同。 * **使用 c1.xlarge** 。 c1.xlarge 具有 8 个 CPU,在负载下确实有帮助。 m1.medium 只有 1 个 CPU 用于处理请求。 非常简单,但很好的建议。 [的原始文章](https://coderwall.com/p/__z9ia)具有更多详细信息,非常值得阅读。 有趣。 去表明我们落后了多远。 我们当前的应用程序大约有 6 个 c1.xlarge 和 10 个 fm.medium 服务器。 它运行缓慢,大约有 100 个用户。 将阅读全文。 但这只是外部站点。 原始文章指出,一旦用户登录到“内部”网站,每个服务器只能处理 1,000 个? 那不是很多。 耶勒特, 您的网站是什么? 乔恩 我很震惊,没有看到本文中提到的 PHP-FPM。 事实是否真的如此,以至每个人都认为它已被使用,或者(更可能提到 APC)它被完全忽略了吗? 即使在 Apache 中,PHP-FPM 的性能优势也令人惊讶,我确实希望所有 PHP 呈现的文件的性能都能提高 2 倍,而无需进行任何其他更改。 这篇文章关于将站点扩展到 30,000,而不是关于 PHP 扩展。 PHP-FPM 在一台服务器上每秒可处理 350-400 个最大请求 “不要在 PHP 代码中与其他服务器建立连接。 与其他服务器建立连接会阻塞服务器并减慢处理速度。请使用 APC 密钥/值存储来存储数据,并使用 Varnish 来缓存整个页面。” 逻辑页面始终需要连接到后端,例如数据库,内存缓存或其他后端服务, 缓存是提高性能的好方法, 但是您怎么可能在没有后端的情况下提供页面? 许多 Web 应用程序远非一个简单的页面。 嗯,我不明白。 有人可以解释吗? @reeze:可能是静态页面!