一些小型网站若一个网站放在一台服务器上会大量浪费服务器资源,如何在一个服务器上架设多个网站呢?

    我们已经知道,架设一个网站需要http服务,安装Apache后,我们可以把我们网站的内容放入到/usr/local/apache2/htdocs/里面,启动httpd服务,设置好防火墙,就可以浏览我们的网站了,那么若是想要部署多个网站要怎么做呢?这就需要apache的一个vhost虚拟主机功能了。我们来用一个实验实现这个效果:计算机浏览器输入www.a.com 显示“I am A!”,输入www.b.com 显示“I am B!”

wKioL1WWOwrDhpY6AADhsQCc6AY361.jpg

搭建方式:

一.开启Apache虚拟主机功能使该功能生效:  
vim /usr/local/apache2/conf/httpd.conf

找到如下字段并把前边的“#”注释掉(如没有则手动加入),wq保存退出:

Include conf/extra/httpd-vhosts.conf
二.创建网站目录并加入内容:

cd /usr/local/apache2/htdocs/
mkdir 
mkdir 
touch /www.b.com/index.html 
touch /www.b.com/index.html  echo 'I am A!' > www.a.com/index.html
echo 'I am B!' > www.b.com/index.html
三.修改虚拟主机配置文件:
vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
修改为如下配置并保存:
NameVirtualHost *:80

<VirtualHost *:80>
    ServerAdmin 648625798@qq.com    #邮箱
    DocumentRoot "/usr/local/apache2/htdocs/www.a.com"    #网站家目录
    ServerName www.a.com    #访问所用域名
    ErrorLog "logs/error_log"    #错误日志
    CustomLog "logs/access_log" common    #访问日志
</VirtualHost>


<VirtualHost *:80>
    ServerAdmin 648625798@qq.com
    DocumentRoot "/usr/local/apache2/htdocs/www.b.com"
    ServerName www.b.com
    ErrorLog "logs/error_log"
    CustomLog "logs/access_log" common
</VirtualHost>
四.重启httpd服务并访问:
/usr/local/apache2/bin/apachectl restart
www.a.com ====> "I am A!" 
www.b.com ====> "I am B!" 
出现如图效果则成功。

wKiom1WWPxXRMCjFAAFZc6MTFLI466.jpg