1. 程式人生 > >Linux-Apache預設虛擬主機

Linux-Apache預設虛擬主機

一臺伺服器可以訪問多個網站,每個網站都是一個虛擬主機
概念:域名(主機名)、DNS、解析域名、hosts
任何一個域名解析到這臺機器,都可以訪問的虛擬主機就是預設虛擬主機

網站更目錄
Linux-Apache預設虛擬主機
域名
Linux-Apache預設虛擬主機
#windows臨時將一個域名指向到某個伺服器上去

虛擬主機,去掉行首的#
vim /usr/local/apache2/conf/httpd.conf //搜尋httpd-vhost,去掉#
Linux-Apache預設虛擬主機
因為,一個配置檔案,對於我不太方便,方式需要開啟虛擬主機,這樣可以配置對個servername
下圖路徑為虛擬主機配置檔案
Linux-Apache預設虛擬主機
vim /usr/local/apache2/conf/extra/httpd-vhosts.conf //改為如下
下述中,則代表每個虛擬主機,對應一個網站,
<VirtualHost :80>
ServerAdmin

[email protected] #定義管理員郵箱,存在與否,意義不大
DocumentRoot "/data/wwwroot/aming.com" #定義網站的根目錄所在路徑
ServerName aming.com #域名,只能寫一個
ServerAlias www.aming.com www.abc.com # 可設定多個域名,域名的別名
ErrorLog "logs/aming.com-error_log" #定義錯誤日誌
CustomLog "logs/aming.com-access_log" common #定義訪問日誌
####如果虛擬主機配置檔案生效,則之前所定義的(下圖所示)會失效
Linux-Apache預設虛擬主機
</VirtualHost>
Linux-Apache預設虛擬主機

<VirtualHost
:80>
DocumentRoot "/data/wwwroot/www.123.com"
ServerName www.123.com
</VirtualHost>

/usr/local/apache2/bin/apachectl –t #檢測語法是否錯誤
/usr/local/apache2/bin/apachectl graceful #重新載入

預設主機:
任何域名,只要解析過來,只要指向本機的ip,如果訪問的域名不在配置檔案裡面,則會走預設主機
crul -x192.168.1.30:80 abc.com

總結,當在主配置檔案中httpd.conf,開啟虛擬主機配置檔案,虛擬主機生效是,則主配置檔案裡的網站根目錄所在路徑和域名則會失效。
虛擬主機配置檔案,可定義多個VirtualHost,而每一個VirtualHost代表一個站點,都是虛擬主機,