什麼是虛拟主機?
一個 http 服務要配置多個站點,就需要用到虛拟主機。
什麼情況會用到虛拟主機?
部署多個站點,每個站點希望用不同的域名和站點目錄,或者是不同的端口,不同的 IP。
虛拟主機的分類
1)基于域名
2)基于端口
3)基于 IP
因為搭建基于端口,IP的虛拟主機的情況較少,是以本文隻介紹的是搭建基于域名的虛拟主機
虛拟主機的規劃
配置三個基于域名的虛拟主機,域名及站點目錄如下
www.yuci.com /var/html/www
blog.yuci.com /var/html/blog
bbs.yuci.com /var/html/bbs
目前環境介紹
CentOS6.7x86_64,分别關閉了 iptables,selinux
uname -r
<a href="http://s3.51cto.com/wyfs02/M02/8D/6D/wKioL1icGOGiPT5PAAAGppGqR3k647.png" target="_blank"></a>
在搭建虛拟主機前,系統中需要有安裝好的 Apache 環境
Apache環境搭建:http://aby028.blog.51cto.com/5371905/1896181
一鍵建立三個站點目錄,并分别在其目錄裡建立首頁檔案
mkdir -p /var/html/{www,blog,bbs}
touch /var/html/{www,blog,bbs}/index.html
通過 tree 指令檢視是否建立成功
tree /var/html
<a href="http://s3.51cto.com/wyfs02/M01/8D/6F/wKiom1icGOLzzs0bAAANQSCSE08683.png" target="_blank"></a>
如果報錯需要 yum 安裝一下:yum -y install tree
通過 for 循環分别将對應的域名寫入三個目錄中的 index.html 檔案
for name in www blog bbs;do echo "http://$name.yuci.com" > /var/html/$name/index.html;done
<a href="http://s3.51cto.com/wyfs02/M00/8D/6F/wKiom1icGOWQZidyAAAOJjW1d9o862.png" target="_blank"></a>
還可以通過 for 循環使用 cat 指令檢查
for name in www blog bbs;do cat /var/html/$name/index.html;done
<a href="http://s3.51cto.com/wyfs02/M00/8D/6D/wKioL1icGObzi9T2AAAVK-ILBWg746.png" target="_blank"></a>
編輯虛拟主機的配置檔案
vim /application/apache/conf/extra/httpd-vhosts.conf
<a href="http://s3.51cto.com/wyfs02/M01/8D/6D/wKioL1icGOezBxeoAABLnATnFKA864.png" target="_blank"></a>
編輯 apache 的主配置檔案
vim /application/apache/conf/httpd.conf
<a href="http://s3.51cto.com/wyfs02/M02/8D/6D/wKioL1icGOfCkVj4AAAKMs9rDz4905.png" target="_blank"></a>
<a href="http://s3.51cto.com/wyfs02/M02/8D/6F/wKiom1icGOjRum9RAAAIL-addjk721.png" target="_blank"></a>
在 httpd.conf 檔案的最後加入以下字段
<Directory "/var/html">
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<a href="http://s3.51cto.com/wyfs02/M00/8D/6D/wKioL1icGOjRXR6SAAANoEDM2ss001.png" target="_blank"></a>
檢車文法沒有報錯後,平滑重新開機
/application/apache/bin/apachectl -t
/application/apache/bin/apachectl graceful
<a href="http://s3.51cto.com/wyfs02/M01/8D/6F/wKiom1icGOnixDkqAAASDpa4eBU480.png" target="_blank"></a>
編輯本機的 hosts 檔案
hosts 檔案路徑 C:\Windows\System32\drivers\etc
也可以通過 cmd 執行 drivers
編輯内容如下:位址在前,域名在後
<a href="http://s3.51cto.com/wyfs02/M01/8D/6D/wKioL1icGO_yE8kGAAAHIUb0E18708.png" target="_blank"></a>
當本機分别 ping 三個域名,檢測是否可以 ping 通
ping www.yuci.com
<a href="http://s3.51cto.com/wyfs02/M02/8D/6D/wKioL1icGPDxfw2MAAAQTd7T3fg559.png" target="_blank"></a>
ping blog.yuci.com
<a href="http://s3.51cto.com/wyfs02/M01/8D/6D/wKioL1icGPDBJM9TAAAQDQhmmHU631.png" target="_blank"></a>
ping bbs.yuci.com
<a href="http://s3.51cto.com/wyfs02/M00/8D/6F/wKiom1icGPHCXt9vAAAQNvpxU-k616.png" target="_blank"></a>
通過浏覽器分别通路三個域名,均可以正常通路并正确看到内容
本文轉自 mlwzby 51CTO部落格,原文連結:http://blog.51cto.com/aby028/1896389