Apache的配置文件一般放置在/etc/httpd/conf文件夾下,httpd.conf是它的主配置文件,在進行配置時可以將虛擬主機的配置文件單獨配置,如取名為vhost.conf,然后再http.conf中加入一行包含的語句“Include /etc/httpd/conf/vhost.conf”即可將vhost.conf的配置文件包含進來。
目前在一台服務器上搭建多個網站的方法主要由以下幾種:
1、 基於IP地址
這種方法適用於一台服務器有多個IP的情況,但目前阿里雲的ECS只允許綁定一個公網IP和一個私網IP,故此方法不適用
2、 基於端口號
這種方法使用不同的端口號來識別不同的網站,實際訪問時使用網址加端口號的方式來實現,如http://port.huigher.cn:80,http://port.huigher.cn:81,http://port.huigher.cn:82,該方式配置后需要在網站后加上端口號來訪問不同的網站,適用於網站域名短缺但服務器的端口號充足的情況,缺點是網站后需要加上端口號,不利於用戶訪問
3、 基於主機名
這種方法使用不同的域名來區分不同的網站,所有的域名解析都指向同一個IP,Apache通過在HTTP頭中附帶的host參數來判斷用戶需要訪問哪一個網站,如http://test1.huigher.cn,http://test2.huigher.cn,http://test3.huigher.cn,多數情況下多個網站架在一台服務器上均使用該方法,下面以CentOS6.5系統為例,說明如何配置基於主機名的Apache虛擬主機。
一、 在Apache的配置文件夾下新建vhost.conf,作為虛擬主機的配置文件,在其中編寫虛擬主機的內容,先加入默認的文件頭:
NameVirtualHost *:80
ServerName *
# DocumentRoot為默認情況下網站的目錄
DocumentRoot /www/html
二、 之后再根據實際情況添加以下的配置:
#在任意的地址上監聽80端口上的HTTP請求
#網站管理員的聯系方式
ServerAdmin
test@huigher.cn
#網站的目錄
DocumentRoot /var/www/html/test3
#主機名,apache就是通過這個地址來識別不同的網站
ServerName test3.huigher.cn
#錯誤日志路徑
ErrorLog logs/test3.huigher.cn-error_log
#訪問日志路徑
CustomLog logs/test3.huigher.cn-access_log common
四、 服務器上有多少個網站,那么就分別配置多少份以上信息,並根據實際情況修改其中的內容,測試時服務器上的頁面配置情況如下:
五、 在http.conf文件中加入一行“Include /etc/httpd/conf/vhost.conf”,將vhost.conf文件內容包含進來
六、在/etc/hosts文件中將網站的域名綁定到本地環回地址上:
127.0.0.1 test1.huigher.cn
127.0.0.1 test2.huigher.cn
127.0.0.1 test3.huigher.cn
七、 最后使用service httpd reload重新加載配置文件或service httpd restart重啟Apache進程即可
八、 測試不同的域名返回了不同的網站內容