所以,我的整个应用程序在 Apache 上运行良好。但是,我想测试一下如果我将所有静态文件都通过 nginx,每秒请求数会增加多少。
但是我有几个问题。我对 nginx 完全陌生,所以我不知道该把配置放在哪里。(文件位于 /etc/nginx/nginx.conf,但我不知道我是否只需将代码添加到底部还是怎样?)
另外,我怎样才能让两台服务器同时运行?是因为它们都监听端口 80 吗?现在我必须停止一台服务器才能启动另一台,这就是我所能做到的。
谢谢你的帮助。
答案1
如果它们位于不同的 IP 上,则可以位于同一端口上。或者它们可以位于具有相同 IP 的不同端口上,但不能同时位于两者上(也可以是不同的 IP 和不同的端口)。如果它们是不同的服务器,则需要多个 IP 方案,但您可以在同一个服务器上使用多个 IP。
我发誓我不是想迷惑你:-)
这位置指令您提供的链接将进入服务器指令(请注意,在 location 指令的文档中有“context: server ”)。如果您使用的是带有默认 apt 安装的较新 Ubuntu 版本,则可能需要在 sites-enabled 目录中编辑 default 。例如(有点愚蠢,因为它将所有内容传递给 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;
}
}
在这种情况下,我对两者使用相同的服务器。Nginx 监听 80,Apache 监听 2500。您需要将 DNS 指向 Nginx 服务器的 IP,因为该服务器通过代理其他服务器来处理所有请求。基本上,从客户端的角度来看,它们只与 Nginx 服务器通信。
答案2
我无法帮助解决 nginx 配置问题,因为我自己还没有用过它,但如果你看一下你链接到的那个问题中的配置片段,你会看到 Apache 在端口 8080 上运行。这是同时运行两者的关键 - 它们需要位于不同的端口上。因为 nginx 是 Apache 的代理,所以用户永远不会看到后者在哪个端口上运行,也不需要知道。