我正在运行一个小型 VPS(512MB-Ubuntu 10.04),并试图让 Nginx 位于前端并提供所有图像/静态内容,并且仅在需要时向 Apache2 发送 PHP 请求。我想知道我是否需要在 Nginx 中为每个站点设置一个虚拟主机,然后在 Apache 中设置相同的虚拟主机,或者有没有更好的方法来实现这一点?
我一直在与之斗争但它似乎太复杂了。
干杯,斯科特
答案1
只有当您希望 nginx 根据主机名做出不同响应时,才需要在 nginx 中使用虚拟主机。因此,例如,如果您始终希望 nginx 将请求代理到 apache,则不需要虚拟主机。如果您希望它在文件名不以“.png”结尾和/或请求的文件不存在于给定目录中时始终将请求代理到 apache,那么您仍然不需要虚拟主机。
但是如果您希望 nginx 根据主机名在不同位置搜索文件,那么除非有一种简单、直接的方法可以告诉 nginx 将主机名转换为文件位置,否则您可能最终会为每个主机名设置一个虚拟主机——这样您就可以告诉它在哪里找到文件。
答案2
我将在 apache 和 nginx 中为每个虚拟主机创建一个虚拟主机。如果您确实有很多虚拟主机,您可以编写一个快速 shell 脚本来从另一组配置中生成一组初始配置。
从长远来看,我认为这是最简单的选择,因为它使得在系统配置完成后在站点级别进行更改变得更容易。