默認主機
Apache服務器上可以配置多個虛擬主機,實現一個服務器提供多站點服務,其實就是訪問同 一個服務器上的不同目錄。
一個服務器主機可以運行多個網站,每個網站都是一個虛擬主機;
任何一個域名解析到這臺機器,都可以訪問的虛擬主機就是默認虛擬主機;
一、在Windows中編輯hosts文件
Windows系統中hosts位置“C:\Windows\System32\drivers\etc\hosts”
說明:在此可以自定義匹配本地IP和域名,目的是添加臨時訪問地址(在DNS未生效的時候使用)。
在hosts中添加一行:
192.168.xxx.xxxx www.xxxx.com PS:
在windows上ping一下看看能否訪問定義的IP:
在瀏覽器中:
二、在Linux中設置httpd默認虛擬主機
在物理機訪問的域名www.abc.com並未在虛擬機Apache配置文件中定義,虛擬機中只定義了ServerName www.example.com:80一個域名,該域名即爲Apache的默認主機,此時通過任何一個綁定該虛擬機IP的域名進行訪問都會跳轉到該主機。
因爲一臺服務器可以跑多個域名,爲了方便管理,需要對虛擬主機進行配置:
1、編輯httpd配置文件
[root@localhost /]# vim /usr/local/apache2/conf/httpd.conf //搜索httpd-vhost,去掉#
2、編輯虛擬主機配置文件
[root@localhost /]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
修改內容:
<VirtualHost *:80> //每個VirtualHost代表一個主機,一個主機代表一個網站
ServerAdmin [email protected] //定義管理員的郵箱
DocumentRoot "/data/webroot/abctest" //指定根目錄
ServerName zlinux.com //定義網站名稱
ServerAlias zlinuxbak.com //設置網站別名
ErrorLog "logs/dummy-host.example.com-error_log" //錯誤日誌
CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot "/data/webroot/123test"
ServerName 123test.com
ServerAlias www.example.com
ErrorLog "logs/dummy-host2.example.com-error_log"
CustomLog "logs/dummy-host2.example.com-access_log" common
</VirtualHost>
說明:此時即定義了一個網站,定義網站的核心參數即爲:DocumentRoot(網站根目錄)、ServerName(域名)。
注意: 虛擬主機生效後,原Apache配置文件中的默認主機(www.example.com 192.168.204.128)就會失效。
3、添加虛擬主機相應目錄
[root@localhost /]# mkdir /data/wwwroot/
[root@localhost /]# mkdir /data/wwwroot/abctest
[root@localhost /]# mkdir /data/wwwroot/123test
在目錄中創建PHP測試文件:
[root@localhost /]#vim /data/wwwroot/abctest/index.php
<?php
echo "this is a testfile!";
?>
[root@localhost /]# vim /data/wwwroot/123test/index.php
<?php
echo "這是一個123test文件!";
?>
4、測試虛擬主機
[root@localhost /]#curl -x 192.168.204.128:80 zlinux.com
This is a testfile![root@zlinux ~]#
[root@localhost /]# curl -x 192.168.204.128:80 123test.com
這是一個123test文件![root@zlinux ~]#
[root@localhost /]# curl -x 192.168.204.128:80 000test.com //在沒有指定或錯誤域名的情況下,訪問任意的域名都將訪問到默認主機所對應的內容。