前面的文章中,我們學習了apache的基本使用,apache的配置文件,以及使用apache實現LAMP的架構,并搭建博客,也探討了編譯LAMP實現架構的方式。
在我們之前的探討中,一直使用的是ip作為訪問網站的方式, 但事實上我們訪問百度,訪問其他網站都是訪問的域名,而非IP。 在討論寶塔面板的章節的時候,我們還使用了ip+端口號的形式訪問。
用apache搭建一個網頁,那么除了用ip或者ip加端口的形式訪問之后,還有別的方式嗎,今天我們就來聊一聊,虛擬主機的那些事。
百度百科的定義是這樣的:
在一個Apache服務器上可以配置多個虛擬主機,實現一個服務器提供多站點服務,其實就是訪問同一個服務器上的不同目錄。一個服務器主機可以運行多個網站,每個網站都是一個虛擬主機。
我們都知道Linux當中一切皆為目錄,那么我們訪問一個網站,到底訪問的是什么?
比如我們搭建好了dz論壇,訪問IP或者域名, apache配置文件里指定了路徑
上圖可以看出,當我們訪問bbs.zmkjedu.com的時候,實際上是訪問的黃色框里的路徑,默認訪問index.php
centos7搭建apache服務器?輸入網址的時候,也會默認帶著index.php
到這里我們就明白了,當我們訪問網站的時候,我們其實是訪問了一個目錄里的文件。
那虛擬主機又是什么意思呢?
簡單點說,虛擬主機就是不同的訪問目錄里的文件。
如圖所示當我們訪問www.zmkjedu.com和訪問bbs.zmkjedu.com的時候,訪問的路徑不一樣,所以訪問的文件就不一樣。
centos部署web項目、
上圖也是在apache的配置文件里面,但是路徑不同,訪問的是二級域名zh.zmkjedu.com
那么虛擬主機除了基于域名,還有什么樣的方式
Apache虛擬主機的實現方式有3種。
<VirtualHost *:80> #服務器ip和端口DocumentRoot "/var/www/html/" #站點目錄ServerName www.cq.com #域名ServerAlias #給虛擬主機增加多個域名,上面網址的別名<Directory "/var/www/html"> #對根目錄行為的限制Options FollowSymLinks ExecCGI #followsymlinks表示允許使用符號鏈接,默認為禁用AllowOverride None #表示禁止用戶對目錄配置文件(.htaccess進行修改)重載,普通站點不建議開啟Order allow,deny #是否顯示列表 (在發布項目后一般是不啟用,對于這個配置,針對DocumentRoot在apachede的默認文件夾外的目錄生效。比如下面的例一 )Allow from all#Deny from all #拒絕所有的訪問Require all granted</Directory></VirtualHost>
需要注意的是,每次寫這個配置的時候,不需要所有的都寫,就像我上面的例子一樣,只寫三行也可以。
將不同的網站掛在不同的IP上,訪問不同的IP,所看到的是不同網站.因為一般服務器沒那么多公網IP,而且大家一般都是用域名訪問的,所以這種情況,我們做實驗的時候會用,內網測試的時候會用,公司一般不用
[root@gaosh-1 ~]# ifconfig |grep inetinet addr:192.168.1.22 Bcast:192.168.1.255 Mask:255.255.255.0inet6 addr: fe80::20c:29ff:fed9:e81/64 Scope:Linkinet addr:127.0.0.1 Mask:255.0.0.0inet6 addr: ::1/128 Scope:Host
[root@gaosh-1 ~]#
[root@gaosh-1 ~]# ifconfig eth0:0 192.168.1.23
[root@gaosh-1 ~]# ifconfig |grep inet inet addr:192.168.1.22 Bcast:192.168.1.255 Mask:255.255.255.0inet addr:192.168.1.23 Bcast:192.168.1.255 Mask:255.255.255.0
apache基于域名虛擬主機配置?[root@gaosh-1 ~]# vim /etc/httpd/conf/httpd.conf
方便復制版
<VirtualHost 192.168.1.22:80>DocumentRoot /var/www/html/zmgaosh22
</VirtualHost><VirtualHost 192.168.1.23:80>DocumentRoot /var/www/html/zmgaosh23
</VirtualHost>
[root@gaosh-1 ~]# service httpd restart
[root@gaosh-1 ~]# mkdir -p /var/www/html/zmgaosh22
[root@gaosh-1 ~]# mkdir -p /var/www/html/zmgaosh23[root@gaosh-1 ~]# echo '192.168.1.22 我是高勝寒22' > /var/www/html/zmgaosh22/index.html
[root@gaosh-1 ~]# echo '192.168.1.23 我是高勝寒23' > /var/www/html/zmgaosh23/index.html
[root@gaosh-1 ~]#
測試:
[root@gaosh-1 ~]# elinks -source 192.168.1.22
192.168.1.22 我是高勝寒22
[root@gaosh-1 ~]# elinks -source 192.168.1.23
192.168.1.23 我是高勝寒23
[root@gaosh-1 ~]#
[root@gaosh-1 ~]# vim /etc/httpd/conf/httpd.conf
Listen 80
Listen 81<VirtualHost 192.168.1.22:80>DocumentRoot /var/www/html/zmgaosh22
</VirtualHost><VirtualHost 192.168.1.23:81>DocumentRoot /var/www/html/zmgaosh23
</VirtualHost>
[root@gaosh-1 ~]# service httpd restart
[root@gaosh-1 ~]# elinks -source 192.168.1.22:80
192.168.1.22 我是高勝寒22[root@gaosh-1 ~]# elinks -source 192.168.1.23:81
192.168.1.23 我是高勝寒23
[root@gaosh-1 ~]#
<VirtualHost 192.168.1.22:80>DocumentRoot /var/www/html/zmgaosh22ServerName www.zmgaosh22.com
</VirtualHost><VirtualHost 192.168.1.23:80>DocumentRoot /var/www/html/zmgaosh23ServerName www.zmgaosh23.com
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.22 www.zmgaosh22.com
192.168.1.23 www.zmgaosh23.com
[root@gaosh-1 ~]# service httpd restart[root@gaosh-1 ~]# elinks -source www.zmgaosh22.com
192.168.1.22 我是高勝寒22
[root@gaosh-1 ~]# elinks -source www.zmgaosh23.com
192.168.1.23 我是高勝寒23
[root@gaosh-1 ~]#
虛擬主機在配置基于域名和基于端口的用的比較多,需要熟練掌握。
我是高勝寒,一個在教培行業不忘初心的人。
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
图1:双十一活动图
活动时间:2017年10月23日——2017年11月13日
活动产品:几何画板
活动优惠" alt="几何画板领衔起跑,提前启动双十一!">
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态