在Apache中搭建虚拟主机,这算是Apache的常用功能了。Apache可以通过不同域名在同IP上架设多个网站服务,也可以通过不同端口来实现多站点的架设,但今天介绍的是基于前者,也就是基于不同域名架设虚拟主机。
其实在红帽RHCE课程中已经详细讲过Apache的虚拟主机,在RHCE考试中也是必考内容,但是在ubuntu下配置有一些区别,所以今天来记录一下两者的配置过程:
Redhat Enterprise Linux 虚拟主机配置
1.打开文件 /etc/httpd/conf/httpd.conf,在尾行添加如下代码:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName w1.malu.me
DocumentRoot /var/www/w1
</VirtualHost>
<VirtualHost *:80>
ServerName w2.malu.me
DocumentRoot /var/www/w2
</VirtualHost>
2.重新加载httpd服务的配置文件,执行语句:
service httpd reload
Ubuntu Linux 虚拟主机配置
1.打开目录 /etc/apache2/sites-available/ ,可以查看到有两个文件default和default-ssl 两个文件,其中default文件是http虚拟主机的默认配置文件,default-ssl是https服务的默认配置文件。可以复制一份default到w1.malu.me(文件名可任意但为便于记忆尽量设成和域名相同的文件名),修改其中的配置,把ServerName项改成w1.malu.me。同样的w2也一样设置。
2.当然可以新建一个,为了简洁查看,并排除其他干扰,我们可以新建一个w1.malu.me在/etc/apache2/sites-available/目录下,并写入内容:
<VirtualHost *:80>
ServerName w1.malu.me
DocumentRoot /var/www/w1
</VirtualHost>
再新建一个w2.malu.me文件,写入内容:
<VirtualHost *:80>
ServerName w2.malu.me
DocumentRoot /var/www/w2
</VirtualHost>
3.通过a2ensite命令来激活虚拟主机配置(#注意次操作必须)
sudo a2ensite w1.malu.me
sudo a2ensite w2.malu.me
4.重新加载Apache配置文件
sudo /etc/init.d/apache2 reload
注:#删除虚拟主机是通过一下命令实现
sudo a2dissite w2.malu.me
#并要再次重新加载配置文件
sudo /etc/init.d/apache2 reload
关于Apache的虚拟主机配置就介绍完了,在红帽系统下配置较为简单,在ubuntu下容易忽视a2ensite激活操作。当然实际生产环境中,还需要写入日志记录等功能,在需要的时候记得加上。