阿里雲ECS實戰配置虛擬主機
買了一台ECS阿里雲服務器,性能感覺有點富余,想着可以陪着虛擬主機多一些WWW目錄好放一些其他的程序。比如DEMO什么的。
今天研究了下,主要是就是做基於不同域名的虛擬主機,也就是下面參考方案中的第二個。
1. 設置域名映射同一個IP,修改hosts(host文件位置:/etc/hosts):
192.168.1.10 test.tang.cn
2. 跟上面一樣,建立虛擬主機存放網頁的根目錄(本人采用的是XAMPP)
/htdocs/test/2.html
3. 在httpd.conf中將附加配置文件httpd-vhosts.conf包含進來,接着在httpd-vhosts.conf中寫入如下配置:
Include etc/extra/httpd-vhosts.conf 注釋去掉
# Virtual hosts
Include etc/extra/httpd-vhosts.conf
下一步就是為你建立的每個虛擬主機設定<VirtualHost>配置塊,<VirtualHost>的參數與NameVirtualHost指令的參數是一樣的。每個<VirtualHost>定義塊中,至少都會有一個ServerName指令來指定伺服哪個主機和一個DocumentRoot指令來說明這個主機的內容存在於文件系統的什么地方。
如果在現有的web服務器上增加虛擬主機,必須也為現存的主機建造一個<VirtualHost>定義塊。其中ServerName和DocumentRoot所包含的內容應該與全局的保持一致,且要放在配置文件的最前面,扮演默認主機的角色。
注意參考httpd-vhosts.conf中的推薦寫法來寫,有些沒有必要的不用寫
ServerAdmin abc@163.com
DocumentRoot "/opt/lampp/htdocs/abc/"
ServerName abc.com
ServerAlias www.abc.com
ErrorLog "logs/abc.com-error_log"
CustomLog "logs/abc.com-access_log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin tang@163.com
DocumentRoot "/opt/lampp/htdocs/test/"
ServerName test.tang.cn
ServerAlias www.test.tang.cn
ErrorLog "logs/test.tang.cn-error_log"
CustomLog "logs/test.tang.cn-access_log" common
</VirtualHost>
4. 大功告成,重啟服務器,測試下每個虛擬主機,分別訪問www.abc.com、test.tang.cn
一、基於IP
1. 假設服務器有個IP地址為192.168.1.10,使用ifconfig在同一個網絡接口eth0上綁定3個IP:
[root@localhost root]# ifconfig eth0:2 192.168.1.12
[root@localhost root]# ifconfig eth0:3 192.168.1.13
2. 修改hosts文件,添加三個域名與之一一對應:
192.168.1.12 www.test2.com
192.168.1.13 www.test3.com
3. 建立虛擬主機存放網頁的根目錄,如在/www目錄下建立test1、test2、test3文件夾,其中分別存放1.html、2.html、3.html
/www/test2/2.html
/www/test3/3.html
4. 在httpd.conf中將附加配置文件httpd-vhosts.conf包含進來,接着在httpd-vhosts.conf中寫入如下配置:
ServerName www.test1.com
DocumentRoot /www/test1/
<Directory "/www/test1">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow From All
</Directory>
</VirtualHost>
<VirtualHost 192.168.1.12:80>
ServerName www.test1.com
DocumentRoot /www/test2/
<Directory "/www/test2">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow From All
</Directory>
</VirtualHost>
<VirtualHost 192.168.1.13:80>
ServerName www.test1.com
DocumentRoot /www/test3/
<Directory "/www/test3">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow From All
</Directory>
</VirtualHost>
5. 大功告成,測試下每個虛擬主機,分別訪問www.test1.com、www.test2.com、www.test3.com
二、基於主機名(域名)
1. 設置域名映射同一個IP,修改hosts:
192.168.1.10 www.test2.com
192.168.1.10 www.test3.com
2. 跟上面一樣,建立虛擬主機存放網頁的根目錄
/www/test2/2.html
/www/test3/3.html
3. 在httpd.conf中將附加配置文件httpd-vhosts.conf包含進來,接着在httpd-vhosts.conf中寫入如下配置:
下一步就是為你建立的每個虛擬主機設定<VirtualHost>配置塊,<VirtualHost>的參數與NameVirtualHost指令的參數是一樣的。每個<VirtualHost>定義塊中,至少都會有一個ServerName指令來指定伺服哪個主機和一個DocumentRoot指令來說明這個主機的內容存在於文件系統的什么地方。
如果在現有的web服務器上增加虛擬主機,必須也為現存的主機建造一個<VirtualHost>定義塊。其中ServerName和DocumentRoot所包含的內容應該與全局的保持一致,且要放在配置文件的最前面,扮演默認主機的角色。
<VirtualHost *:80>
ServerName *
DocumentRoot /www/
</VirtualHost>
<VirtualHost *:80>
ServerName www.test1.com
DocumentRoot /www/test1/
<Directory "/www/test1">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName www.test2.com
DocumentRoot /www/test2/
<Directory "/www/test2">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost><VirtualHost *:80>
ServerName www.test3.com
DocumentRoot /www/test3/
<Directory "/www/test3">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>4. 大功告成,測試下每個虛擬主機,分別訪問www.test1.com、www.test2.com、www.test3.com
三、基於端口
將原來的
Listen 80
改為
Listen 80
Listen 8080
2. 更改虛擬主機設置:
DocumentRoot /var/www/test1/
ServerName www.test1.com
</VirtualHost>
<VirtualHost 192.168.1.10:8080>
DocumentRoot /var/www/test2
ServerName www.test2.com
</VirtualHost>