我阅读了大量有关此问题的文章(包括本网站的所有帖子),但无法得出最终决定。
对于负载非常高的网站(每天数百万用户),什么被认为是更好的(性能和安全性方面):
- 独立 Nginx + PHP + SQL
- Nginx 作为 Apache + PHP + SQL 的反向代理
我不明白的是——如果 Nginx 可以运行动态内容,为什么还要使用 Apache?
答案1
我有 20 多个 Web 服务器nginx+php-fpm
在一对 HAProxy 平衡器后面运行。在我看来,根据我自己的经验,这是最佳设置。这不会对 Apache 造成任何影响(我使用它已经超过 10 年了),但 Nginx 的表现确实令人惊叹。
HAProxy 是最好的开源负载均衡器。就是这样。我尝试过很多,包括商业产品。我还在负载均衡器上安装了 nginx 来卸载 SSL。即使在高负载下,它也能很好地工作。
将所有静态内容(图像、css、js 等)拆分到单独的 nginx 可进一步提高性能。HAProxy 可以将所有静态请求发送到单独的服务器,这意味着您可以在后端系统中享受并行请求的好处。
如果您确实尝试HAProxy
,请记住将 Web 服务器的设置保持MAXCONN
在较低值(例如 40 中的 20)。我看到很多帖子都将 Web 服务器的 maxconn 设置设置为 1000 左右 - 这将导致 HAProxy 瞬间使节点过载。
答案2
除非您想使用 Apache 特定的功能,否则在 Nginx 后面使用它毫无意义。