![nginx + php fcgi + 高负载 = 挂起](https://linux22.com/image/518705/nginx%20%2B%20php%20fcgi%20%2B%20%E9%AB%98%E8%B4%9F%E8%BD%BD%20%3D%20%E6%8C%82%E8%B5%B7.png)
我使用 nginx (0.7.65-2~bpo50+1) 和 PHP 5.2.9 在 fast-cgi 配置下运行 PHP,但我发现我们繁忙的网站在负载过高时会挂起。通过终止并重新启动 php 进程可以立即缓解此问题。我有 8 个 php 工作进程和 2 个 nginx 工作进程。
我知道这是此配置中相当常见的问题,但尚未找到一个完美的解决方案。有人有什么建议吗?
任何帮助都非常感谢!:-)
答案1
我发现,使用较少的 PHP 实例,或者最多使用与 nginx 实例一样多的 PHP 实例,可以显著提高稳定性。
不幸的是,虽然这么说让我很痛苦,但在以这种配置运行了一个高流量网站几个月后,我发现最好将其重新部署到运行 Apache + mod_php 的 EC2 上,这是非常可靠的。因为它在 EC2 上,所以我可以扩展所需的电量(即使这比 nginx 还多)。因此,尽管成本可能更高,但它大大减少了使其运行所需的维护工作量。
这真的很遗憾,因为老实说,我讨厌 apache 而喜欢 nginx,但我能说什么呢?
答案2
我有 5 个 nginx 和 6 个 phpcgi 工作进程。它使用 ~400MB RAM 并为 30K/天的 Drupal 网站提供服务。希望这能有所帮助。