我计划使用 nginx 来托管大部分静态内容,并附带一些最少的 php。我将为 nginx 配备 2 台服务器,但这可能对我的需求来说硬件太多了。我考虑将它们分成总共 4 个 nginx 虚拟机(每个机器 2 个)。这样我就可以更灵活地在 nginx 和网站的其他部分(即 apache)之间分配资源。
大部分 cpu/ram 将用于托管静态文件和执行来自 php 的系统调用。
我们将使用 vmware esx 来制作虚拟机。
与在硬件上本地运行 nginx 相比,在虚拟机上运行 nginx 是否会严重影响性能?
答案1
“与在硬件上本地运行 nginx 相比,在虚拟机上运行 nginx 是否会严重影响性能?”
这取决于底层硬件以及您如何分配它。您是否要在同一台主机上运行其他几台虚拟机?您要分配多少个虚拟 CPU 和可用的逻辑 CPU?
虚拟化会对 CPU 造成影响,但影响非常小。可以通过将虚拟 CPU “固定” 到逻辑 CPU 来缓解影响小心规划。
答案2
我公司所有托管网站的虚拟服务器都标配 nginx。与 Apache2 可能使用的大量内存和 CPU 相比,运行 nginx 的开销微不足道。
这些天来,我从未设置过没有 nginx 提供静态内容的 Web 环境 - 当然,除非我将 Varnish 放在那里并缓存起来。
编辑:为您提供更多信息,我们负载最重的虚拟机(4xCPU 8GB RAM)应用服务器带有 nginx,具有 8 个工作进程和 1024 个工作连接 RP 到 Apache2,nginx 在峰值时使用 6MB RAM。