如何让 apache 在除少数 IP 之外的所有 IP 上执行虚拟主机

如何让 apache 在除少数 IP 之外的所有 IP 上执行虚拟主机

我的 Linux 服务器上有大约 130 个 IP。125 个 IP 指向一个站点,其中 5 个指向另一个站点。我只想创建两个虚拟主机定义。

目前我在顶部做一个通配符,然后为 5 个 IP 中的每一个分配单独的 Vhost。我遇到的问题是,当它在其他 5 个上找不到任何东西时,有时会触发拾取通配符 (*) vhost。

答案1

我不认为会有任何漂亮或优雅的方式来处理所有这些IP,但看起来这可能是你最好的选择:http://httpd.apache.org/docs/2.0/vhosts/examples.html#intraextra

看起来你可以在 VirtualHost 声明中用空格分隔 IP

<VirtualHost 192.168.1.1:80 172.20.30.40:80 3.other.IPs>
    DocumentRoot /www/example1
    ServerName www.example1.org
</VirtualHost>

然后只需使用默认设置以接收另外 125 ips

<VirtualHost _default_:80>
    DocumentRoot /www/example2
    ServerName www.example2.org
</VirtualHost>

希望这可以帮助!

答案2

您应该能够为指向一个站点的 125 IP 定义一个默认虚拟主机,如下所示

<VirtualHost _default_:80>
...
</VirtualHost>

然后为这 5 个“特殊” IP 中的每一个 IP 都配备一个虚拟主机。

答案3

您可以编写脚本来生成每个 IP 的虚拟主机。

相关内容