【转】Apache 配置虚拟主机三种方式
Apache 配置虛擬主機三種方式
原文博客http://www.cnblogs.com/hi-bazinga/archive/2012/04/23/2466605.html一、基于IP
?1. 假設服務器有個IP地址為192.168.1.10,使用ifconfig在同一個網絡接口eth0上綁定3個IP:
[root@localhost?root]#?ifconfig?eth0:1?192.168.1.11[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.11???www.test1.com192.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/test1/1.html/www/test2/2.html
/www/test3/3.html
?
?4. 在httpd.conf中將附加配置文件httpd-vhosts.conf包含進來,接著在httpd-vhosts.conf中寫入如下配置:
<VirtualHost?192.168.1.11: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?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.test1.com192.168.1.10??www.test2.com
192.168.1.10??www.test3.com
?2. 跟上面一樣,建立虛擬主機存放網頁的根目錄
/www/test1/1.html/www/test2/2.html
/www/test3/3.html
?
?3. 在httpd.conf中將附加配置文件httpd-vhosts.conf包含進來,接著在httpd-vhosts.conf中寫入如下配置:?
為了使用基于域名的虛擬主機,必須指定服務器IP地址(和可能的端口)來使主機接受請求。可以用NameVirtualHost指令來進行配置。 如果服務器上所有的IP地址都會用到, 你可以用*作為NameVirtualHost的參數(shù)。在NameVirtualHost指令中指明IP地址并不會使服務器自動偵聽那個IP地址。?這里設定的IP地址必須對應服務器上的一個網絡接口。下一步就是為你建立的每個虛擬主機設定<VirtualHost>配置塊,<VirtualHost>的參數(shù)與NameVirtualHost指令的參數(shù)是一樣的。每個<VirtualHost>定義塊中,至少都會有一個ServerName指令來指定伺服哪個主機和一個DocumentRoot指令來說明這個主機的內容存在于文件系統(tǒng)的什么地方。
如果在現(xiàn)有的web服務器上增加虛擬主機,必須也為現(xiàn)存的主機建造一個<VirtualHost>定義塊。其中ServerName和DocumentRoot所包含的內容應該與全局的保持一致,且要放在配置文件的最前面,扮演默認主機的角色。
NameVirtualHost?*:80<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
?
三、基于端口
1.? 修改配置文件將原來的
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>
轉載于:https://www.cnblogs.com/irockcode/p/6254462.html
總結
以上是生活随笔為你收集整理的【转】Apache 配置虚拟主机三种方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一种在JS代码中实现模板变量替换的方法
- 下一篇: gulp使用