Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 与另一个web服务器一起运行Apache?_Linux_Apache - Fatal编程技术网

Linux 与另一个web服务器一起运行Apache?

Linux 与另一个web服务器一起运行Apache?,linux,apache,Linux,Apache,有没有人成功地在同一台机器上同时运行两个不同的web服务器,如Apache和CherryPy?我现在正在试验其他web服务器,我想看看我是否可以在保持其他网站正常运行的同时进行试验。你可以说,这与其说是一个具体的软件问题,不如说是一个一般的网络问题 我知道可以在不同的端口上运行两个web服务器;但是有没有办法配置它们,使它们可以在同一个端口上运行(即,它们都在端口80上运行) web服务器将不会为来自相同域的文件提供服务。例如,Apache可能提供来自foo.domain.com的文档,而另一

有没有人成功地在同一台机器上同时运行两个不同的web服务器,如Apache和CherryPy?我现在正在试验其他web服务器,我想看看我是否可以在保持其他网站正常运行的同时进行试验。你可以说,这与其说是一个具体的软件问题,不如说是一个一般的网络问题

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

我知道这不是一个理想的配置。我只是想在我冲进兔子洞之前看看能不能完成

您的最佳选择是将Apache httpd放在端口80前面,并使用模块通过Apache转发其他服务器的请求。最流行的场景是Apache背后的Tomcat,在这里您可以同时运行php和jsp应用程序

我不熟悉CherryPy,所以我只能建议您为CherryPy寻找Apache模块


编辑:这看起来很有希望:

或者,根据Ishmael的正确答案,如果您有一台带有两个网卡的服务器,您可以让每台服务器在不同的IP地址上应答请求。

您不能让两个进程绑定到同一IP地址上的同一端口。您可以向该框中添加另一个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>
NameVirtualHost*
ServerName other.site.com
#假设CherryPy侦听端口8080
ProxyPass/http://127.0.0.1:8080/
ProxyPassReverse/http://127.0.0.1:8080/
这是一个很快的例子,但你可以随时检查。但是请记住,被代理的应用程序将在其日志中获得127.0.0.1,而不是请求者的IP地址。一些web服务器(apache使用)可以用X-Forwarded-For报头代替错误的IP地址。也许CherryPy有这个