如何在多个端口上配置多个apache虚拟主机?

如何在多个端口上配置多个apache虚拟主机?

我有一台只有一个 IP 地址的服务器。我想在 Apache 2.2 中运行多个虚拟主机。我希望所有虚拟主机都可以通过端口 80(纯 http)、8000(纯 http)和 443(ssl)访问。

例如,我有两个虚拟主机 a.foo.com 和 b.foo.com。我希望可以访问以下 URL:http://a.foo.comhttp://a.foo.com:8000https://a.foo.comhttp://b.foo.comhttp://b.foo.com:8000https://b.foo.com虚拟主机a.foo.com在所有端口上应该具有相同的内容。

这是我失败的尝试。我还没有接触过 SSL。我甚至无法弄清楚两个普通的 http 端口。

Listen 80
Listen 8000
NameVirtualHost *

<VirtualHost *>
ServerName a.foo.com
DocumentRoot /www/a
</VirtualHost>

<VirtualHost *>
ServerName b.foo.com
DocumentRoot /www/b
</VirtualHost>

答案1

它应该是类似下面的内容

Listen *:80
Listen *:8080

NameVirtualHost *:80
NameVirtualHost *:8080

<VirtualHost *:80>
   ServerName a.foo.com
   DocumentRoot /www/a
</VirtualHost>

<VirtualHost *:8080>
   ServerName a.foo.com
   DocumentRoot /www/a
</VirtualHost>

答案2

对于每个虚拟主机,您还需要包含端口,例如“VirtualHost 172.20.30.40:8080”

请参考http://httpd.apache.org/docs/2.2/vhosts/examples.html

相关内容