apache虛擬主機配置詳解

發布時間:2019-04-10 14:11:53 來源:青鋒建站 作者:青鋒建站
  Apache虛擬主機(Virtual Host)是指在一個機器上運行多個網絡站點,基于主機名的虛擬主機 (一個IP地址,多個網站),基于IP地址的虛擬主機 (每個站點擁有一個獨立IP地址);apache為我們提供了豐富的功能來配置apache虛擬主機,以下是青鋒建站給大家分享的apache虛擬主機的配置案例:包括基本IP的虛擬主機,基本域名的虛擬主機,基于IP和域名混合的虛擬主機,基于端口的虛擬主機,以及apache代碼模塊的配置。

Apache虛擬主機配置指令

1、<VirtualHost>
  用于指定Apache虛擬主機主機名或IP地址的指令
  語法:<VirtualHost 地址[:端口號] [地址[:端口號]] ...> ... </VirtualHost>
<VirtualHost>和</VirtualHost>用于封裝一組僅施用于特定虛擬主機的指令。
2、NameVirtualHost
  為一個基于域名的虛擬主機指定一個IP地址
  語法:NameVirtualHost 地址[:端口]
  比如:NameVirtualHost 111.22.33.44/NameVirtualHost 111.22.33.44:8080
  注意:<VirtualHost>指令的參數必須與NameVirtualHost指令的參數完全匹配
  NameVirtualHost 1.2.3.4
<VirtualHost 1.2.3.4>
...
</VirtualHost
3、ServerName
  服務器用于辨識自己的主機名和端口號
  語法:ServerName 完整的域名[:端口號]
4、DocumentRoot
  配置apache虛擬主機的主文檔的目錄

基于域名的虛擬主機

1、為了使用基于域名的Apache虛擬主機,你必須指定apache服務器IP地址(和可能的端口)來使主機接受請求。 您可以用NameVirtualHost指令來進行配置。 如果服務器上所有的IP地址都會用到, 你可以用*作為NameVirtualHost的參數
2、就是為你建立的每個主機設定<VirtualHost>配置塊, <VirtualHost>的參數與NameVirtualHost指令的參數是一樣的 。 在每個<VirtualHost>定義塊中,至少都會有一個ServerName指令來指定伺服哪個主機和一個DocumentRoot指令來說明這個主機的內容存在于文件系統的什么地方 。
使用舉例:在一個IP地址上運行多個基于域名的web站點
Listen 80
NameVirtualHost  ip地址
   <VirtualHost ip地址>
DocumentRoot /www/example1
ServerName www.example1.com
</VirtualHost>
  <VirtualHost ip地址>
DocumentRoot /www/example2
ServerName www.example2.org
</VirtualHost>

基于IP地址的Apache虛擬主機配置

每個基于IP的虛擬主機必須擁有不同的IP地址。
使用舉例1:在不同的IP的地址(比如一個內部和一個外部地址) 上提供相同的內容
  服務器有兩個IP地址(192.168.1.1和 172.16.30.40)。這個機器位于內部(局域網)網絡和外部 (廣域網)之間。在外部,域名server.example.com指向 外部地址(172.16.30.40),而在內部,同樣的域名指向內 部地址(192.168.1.1)。此服務器可以用 一個VirtualHost配置段實現為向來自內部和外部的請求提供同樣的內容
服務器配置
¡NameVirtualHost 192.168.1.1
NameVirtualHost 172.16.30.40

<VirtualHost 192.168.1.1 172.16.30.40>
DocumentRoot /www/server1
ServerName server.example.com
</VirtualHost>
使用舉例2
一個有兩個IP地址(172.16.30.40和 172.16.30.50)分別對應域名 www.example1.com和www.example2.org的服務 配置如下 。
服務器配置
Listen 80
<VirtualHost 172.16.30.40>
DocumentRoot /www/example1
ServerName www.example1.com
</VirtualHost>

<VirtualHost 172.16.30.50>
DocumentRoot /www/example2
ServerName www.example2.org
</VirtualHost>

基于端口的Apache虛擬主機配置

使用舉例:
  如果您的服務器有兩個IP地址(172.16.30.40和 172.16.30.50)分別對應域名 www.example1.com和www.example2.org。對每個域名,您都希望在80端口和8080端口發布您的網站。您可以這樣配置:
服務器配置
¡Listen 172.16.30.40:80
Listen 172.16.30.40:8080
Listen 172.16.30.50:80
Listen 172.16.30.50:8080

<VirtualHost 172.16.30.40:80>
DocumentRoot /www/example1-80
ServerName www.example1.com
</VirtualHost>

<VirtualHost 172.16.30.40:8080>
DocumentRoot /www/example1-8080
ServerName www.example2.com
</VirtualHost>
¡<VirtualHost 172.16.30.50:80>
DocumentRoot /www/example2-80
ServerName www.example1.org
</VirtualHost>

<VirtualHost 172.16.30.50:8080>
DocumentRoot /www/example2-8080
ServerName www.example2.org
</VirtualHost>

混用基于域名和基于ip的Apache虛擬主機

如果您的服務器有兩個IP地址172.16.30.40和 172.16.30.50
服務器配置
¡Listen 80
NameVirtualHost 172.16.30.40
<VirtualHost 172.16.30.40>
DocumentRoot /www/example1
ServerName www.example1.com
</VirtualHost>

<VirtualHost 172.16.30.40>
DocumentRoot /www/example2
ServerName www.example2.org
</VirtualHost>

<VirtualHost 172.16.30.40>
DocumentRoot /www/example3
ServerName www.example3.net
</VirtualHost>

# IP-based
<VirtualHost 172.16.30.50>
DocumentRoot /www/example4
ServerName www.example4.edu
</VirtualHost>

<VirtualHost 172.16.30.60>
DocumentRoot /www/example5
ServerName www.example5.gov
</VirtualHost>

Apache的代理/網關配置

apache模塊mod_proxy,控制您代理服務器的訪問
<Proxy *>
Order Allow,Deny
Allow from all
  </Proxy>
ProxyRemote 指令
說明:用戶處理某些特定請求的遠端代理
語法:ProxyRemote match remote-server
  此指令定義了此代理的遠端代理。match可以是遠端服務器支持的URL形式的名稱,或是遠端服務器使用的部分URL,或是'*'以代表服務器可以接受所有的請求。remote-server是遠端服務器的部分URL 。
  以上就是青鋒建站給大家分享的apache虛擬主機的配置過程與舉例,青鋒建站,提供專業的網站開發,SEO,網絡營銷服務;開發服務包括,CMS建站開發,PHP原生開發,使用框架開發 。
分享到:

Copyright © 2016-2026 青鋒建站 版權所有

彩票怎么买 最新AV番号网 金牛通配资 探陵人 杠杆炒股配资 银川沐足麻将 日本av有哪些 广东好彩一开奖结果彩票 体彩6+1 武汉小姐楼凤联系信息 小沢爱丽丝番号 日韩一本道 灰熊vs火箭直播 固原捉鸟鸟麻将交友群 山东十一选五任二遗 西安沐足店转让 球探比分即时足球比分手机