我有一台只有一个 IP 地址的服务器。我想在 Apache 2.2 中运行多个虚拟主机。我希望所有虚拟主机都可以通过端口 80(纯 http)、8000(纯 http)和 443(ssl)访问。
例如,我有两个虚拟主机 a.foo.com 和 b.foo.com。我希望可以访问以下 URL:http://a.foo.com,http://a.foo.com:8000,https://a.foo.com,http://b.foo.com,http://b.foo.com:8000和https://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”