有没有人在同一台机器上同时运行两个不同的 Web 服务器(例如 Apache 和 CherryPy)并取得成功?我现在正在试验其他网络服务器,我想看看我是否可以在保持我的其他网站正常运行的同时进行我的试验。您可以说这不是一个特定的软件问题,而是一个一般的网络问题。
- 我知道可以在不同的端口上运行两个网络服务器;但是有什么方法可以配置它们,使它们可以在相同的端口 上运行(即,它们都在端口 80 上运行)?
- Web 服务器不会提供来自相同域的文件。例如,Apache 可能会提供来自 foo.domain.com 的文档,而另一个 Web 服务器会提供来自 bar.domain.com 的文档。
我知道这不是一个理想的配置。我只是想看看它是否可以在我冲进兔子洞之前完成。 :)
最佳答案
您不能将两个进程绑定(bind)到同一 IP 地址上的同一端口。您可以向该框添加另一个 IP 地址,并让每个服务器监听一个。
另一种选择是代理将一个服务器传递给另一个。使用 Apache,您可以执行以下操作:
NameVirtualHost *
<virtualhost *>
ServerName other.site.com
# assumes CherryPy listens on port 8080
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
</Virtualhost>
这是一个非常简单的示例,但您始终可以查看 ProxyPass documentation .但请记住,被代理的应用程序将在其日志中获得 127.0.0.1 而不是请求者的 IP 地址。某些 Web 服务器(apache 使用 mod_rpaf )可以用 X-Forwarded-For header 代替错误的 IP 地址。可能 CherryPy 有这个?
关于linux - 与另一个 Web 服务器一起运行 Apache?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23715/