有没有人在同一台机器上并行运行两个不同的Web服务器(例如Apache和CherryPy)?我现在正在尝试其他网络服务器,我想看看我是否可以在保持其他网站正常运行的同时进行实验。你可以说这不是一个特定的软件问题,因为它是一个普通的网络问题。
我知道这不是一个理想的配置。我想看看是否可以在我冲下兔子洞之前完成它。 :)
答案 0 :(得分:7)
您不能将两个进程绑定到同一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。但请记住,被代理的应用程序将在其日志而不是请求者的IP地址中获得127.0.0.1。某些Web服务器(apache与mod_rpaf一起使用)可以替换X-Forwarded-For标头代替错误的IP地址。可能CherryPy有这个吗?
答案 1 :(得分:0)
最好的办法是将Apache httpd放在端口80前面,并使用模块通过Apache中继其他服务器的请求。最流行的场景是Apache背后的Tomcat,你可以运行php和jsp应用程序。
我不熟悉CherryPy,所以我只建议你为CherryPy寻找一个Apache模块。
编辑:这看起来很有希望:http://tools.cherrypy.org/wiki/BehindApache
答案 2 :(得分:0)
或者,对于Ishmaeel的正确答案,如果您的服务器有2个网卡,您可以让每个服务器在不同的IP地址上应答请求。