基於Apache服務部署虛擬主機功能html
若是每臺Linux系統的服務器上只能運行一個網站,那麼這顯然形成硬件資源的浪費。
linux
利用虛擬主機功能,能夠把一臺物理服務器分割成多個「虛擬的服務器」,實現資源節約,避免浪費。vim
Apache 的虛擬主機功能是服務器基於用戶請求的不一樣 IP 地址、主機域名或端口號,實現提供多個網站同時爲外部提供訪問服務的技術。服務器
下面來詳細講解實現方法ide
本實驗基於cenos7搭建Apache httpd-2.4.6 網站
首先安裝ui
[root@lin10 ~]# yum install httpd –yspa
因爲須要基於不一樣IP來實現本次實驗,因此我添加了三個不一樣IPorm
這臺linux的ens33網卡原先是172.16.16.1/16 因此添加另外兩個IP實現三個不一樣IPhtm
[root@localhost ~]# ip addr add 172.16.16.2/16 dev ens33
[root@localhost ~]# ip addr add 172.16.16.3/16 dev ens33
關閉防火牆systemctl disable firewalld
關閉selinux vi /etc/sysconfig/selinux
將 SELINUX=enforcing , 修改爲disabled
一 基於 IP 地址
1 分別在 /opt/www 中建立存放不一樣網站數據的三個目錄,並向其中寫入網站首頁文件。
mkdir -p /opt/www/1
mkdir -p /opt/www/2
mkdir -p /opt/www/3
echo "172.16.16.1">/opt/www/1/index.html
echo "172.16.16.2">/opt/www/2/index.html
echo "172.16.16.3">/opt/www/3/index.html
2 在 httpd 服務的配置文件中大約 113 行處開始,分別追加寫入三個基於 IP 地址的虛 擬主機網站參數,而後保存並退出。記得須要重啓 httpd 服務,這些配置才生效。
vim /etc/httpd/conf/httpd.conf
113 <VirtualHost 172.16.16.1>
114 DocumentRoot /opt/www/1
115 ServerName www.wawa.com
116 <Directory /opt/www/1 >
117 AllowOverride None
118 Require all granted
119 </Directory>
120 </VirtualHost>
121 <VirtualHost 172.16.16.2>
122 DocumentRoot /opt/www/2
123 ServerName bbs.wawa.com
124 <Directory /opt/www/2 >
125 AllowOverride None
126 Require all granted
127 </Directory>
128 </VirtualHost>
129 <VirtualHost 172.16.16.3>
130 DocumentRoot /opt/www/3
131 ServerName test.wawa.com
132 <Directory /opt/www/3 >
133 AllowOverride None
134 Require all granted
135 </Directory>
136 </VirtualHost>
千萬別忘了監聽80端口
到此基於IP虛擬主機功能就可實現了,啓動服務並驗證。
二 基於端口號
本人偷個懶,直接把以前的基於IP的配置文件修改了,實現基於端口號虛擬主機。
基於80 8080 和6111這三個端口
vim /etc/httpd/conf/httpd.conf
監聽端口須要調整
驗證:
三 基於主機域名
基於主機域名須要dns解析來實現此操做,這裏就不羅列出來了具體操做在這(點擊)。
仍是老樣子,我仍是用以前的文件來修改
監聽端口改爲80
vim /etc/httpd/conf/httpd.conf
驗證: