Nginx(用于静态文件)和 Apache(用于动态内容)?

Mat*_*hew 5 nginx proxy apache-2.2

所以,我的整个应用程序在 apache 上运行得很好。但是,如果我将所有静态文件改为通过 nginx 放置,我想测试每秒请求增加了多少。

我找到了这个线程:https : //stackoverflow.com/questions/869001/how-to-serve-all-existing-static-files-directly-with-nginx-but-proxy-to-apache-t

但我有几个问题。我对 nginx 完全陌生,所以我不确定将配置放在哪里。(该文件在/etc/nginx/nginx.conf,但我不知道是将代码添加到底部还是什么?)

另外,如何让两台服务器同时运行?是因为他们都监听80端口吗?现在我必须停止一个才能开始另一个,这就是我所得到的。

谢谢你的帮助。

Kyl*_*ndt 4

如果它们位于不同的 IP 上,则它们可以位于同一端口上。或者它们可以位于具有相同 IP 的不同端口上,但不能同时位于两者上(也可以是不同的 IP 和不同的端口)。如果它们是不同的服务器,则需要多个 IP 方案,但您可以在同一服务器上使用多个 IP。

我发誓我不是想让你感到困惑:-)

您提供的链接中的位置指令将位于服务器指令内(请注意,在位置指令的文档中存在“context:server”)。如果您使用的是带有默认 apt 安装的最新 Ubuntu 版本,您可能需要在启用站点的目录中编辑默认值。例如(有点傻,因为它将所有内容传递给 Apache):

server {
    listen   80 default;

    access_log  /var/log/nginx/localhost.access.log;

    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://localhost:2500;
    }
}
Run Code Online (Sandbox Code Playgroud)

在本例中,我为两者使用相同的服务器。Nginx 侦听 80,Apache 侦听 2500。您可以将 DNS 指向 Nginx 服务器的 IP,因为该服务器通过代理其他服务器来处理所有请求。基本上,从客户端的角度来看,它们只是与 Nginx 服务器通信。