![如何让 apache 在除少数 IP 之外的所有 IP 上执行虚拟主机](https://linux22.com/image/507520/%E5%A6%82%E4%BD%95%E8%AE%A9%20apache%20%E5%9C%A8%E9%99%A4%E5%B0%91%E6%95%B0%20IP%20%E4%B9%8B%E5%A4%96%E7%9A%84%E6%89%80%E6%9C%89%20IP%20%E4%B8%8A%E6%89%A7%E8%A1%8C%E8%99%9A%E6%8B%9F%E4%B8%BB%E6%9C%BA.png)
我的 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 的虚拟主机。