有没有人在同一台机器上运行两个不同的Web服务器(如Apache和CherryPy)并没有成功? 我现在正在尝试其他网络服务器,我想看看我是否可以在保持其他网站正常运行的同时进行实验。 你可以说这不是一个特定的软件问题,因为它是一个普通的网络问题。

  • 我知道可以在不同的端口上运行两个Web服务器; 但有没有办法配置它们,以便它们可以在同一个端口上运行(即,它们都在端口80上运行)?
  • Web服务器不会提供来自相同域的文件。 例如,Apache可以从foo.domain.com提供文档,而另一个Web服务器可以从bar.domain.com提供。

我知道这不是一个理想的配置。 我想看看是否可以在我冲下兔子洞之前完成它。 :)

===============>>#1 票数: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文档 但请记住,被代理的应用程序将在其日志而不是请求者的IP地址中获得127.0.0.1。 某些Web服务器(apache使用mod_rpaf )可以替换X-Forwarded-For标头代替错误的IP地址。 可能CherryPy有这个吗?

===============>>#2 票数:0

最好的办法是将Apache httpd放在端口80前面,并通过使用模块通过Apache中继其他服务器的请求。 最流行的场景是Apache背后的Tomcat,你可以运行php和jsp应用程序。

我不熟悉CherryPy,所以我只建议你为CherryPy寻找一个Apache模块。

编辑:这看起来很有希望: http//tools.cherrypy.org/wiki/BehindApache

===============>>#3 票数:0

或者,对于Ishmaeel的正确答案,如果您的服务器有2个网卡,则可以让每个服务器在不同的IP地址上应答请求。

  ask by Matt Howell translate from so

未解决问题?本站智能推荐: