一些小型網站若一個網站放在一臺服務器上會大量浪費服務器資源,如何在一個服務器上架設多個網站呢?
html
咱們已經知道,架設一個網站須要http服務,安裝Apache後,咱們能夠把咱們網站的內容放入到/usr/local/apache2/htdocs/裏面,啓動httpd服務,設置好防火牆,就能夠瀏覽咱們的網站了,那麼如果想要部署多個網站要怎麼作呢?這就須要apache的一個vhost虛擬主機功能了。咱們來用一個實驗實現這個效果:計算機瀏覽器輸入www.a.com 顯示「I am A!」,輸入www.b.com 顯示「I am B!」apache
搭建方式:vim
一.開啓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!" 出現如圖效果則成功。