11.6. 虚拟主机

FreeBSD最常见的用途之一就是虚拟网站代管,即以一台服务器在网路上扮演多台服务器,这可以透过指定多个网络位置到一个网络界面来做到。

一个网络界面会有一个真实(Real)位址且可以有许多个别名(Alias)位址。一般会在/etc/rc.conf中放置别名项目来增加别名,如下例:

ifconfig_fxp0_alias0="inet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx"

别名项目必须以alias0开头,使用连续数字例如alias0alias1以此类推,设定程序会在第一个遇到缺号的地方中止。

要注意别名网络掩码(Netmask)的计算,使用的界面必须至少有一个正确的填写网络掩码的位址,而其他所有在此网络中的位址则必须使用全部1的网络掩码,可用255.255.255.2550xffffffff来表示。

举例来说,有一个fxp0界面连接到两个网络:10.1.1.0使用网络掩码255.255.255.0以及202.0.75.16使用网络掩码255.255.255.240。而系统将要设定使用范围10.1.1.110.1.1.5以及202.0.75.17202.0.75.20。在指定的网络范围中只有第一个位址应使用真实的网络掩码,其余(10.1.1.210.1.1.5202.0.75.18202.0.75.20)则必须设定使用255.255.255.255的掩码。

在此情境下正确设定网络界面的方式如下/etc/rc.conf中的项目:

ifconfig_fxp0="inet 10.1.1.1 netmask 255.255.255.0"
ifconfig_fxp0_alias0="inet 10.1.1.2 netmask 255.255.255.255"
ifconfig_fxp0_alias1="inet 10.1.1.3 netmask 255.255.255.255"
ifconfig_fxp0_alias2="inet 10.1.1.4 netmask 255.255.255.255"
ifconfig_fxp0_alias3="inet 10.1.1.5 netmask 255.255.255.255"
ifconfig_fxp0_alias4="inet 202.0.75.17 netmask 255.255.255.240"
ifconfig_fxp0_alias5="inet 202.0.75.18 netmask 255.255.255.255"
ifconfig_fxp0_alias6="inet 202.0.75.19 netmask 255.255.255.255"
ifconfig_fxp0_alias7="inet 202.0.75.20 netmask 255.255.255.255"

有一种更简单的方式可以表达这些设定,便是使用以空白分隔的 IP 位址清单。只有第一个位址会使用指定的子网络掩码,其他的位址则会使用255.255.255.255的子网络掩码。

ifconfig_fxp0_aliases="inet 10.1.1.1-5/24 inet 202.0.75.17-20/28"

本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题,请先阅读 文档,如不能解决再联系 <questions@FreeBSD.org>.

关于本文档的问题请发信联系 <doc@FreeBSD.org>.