apache2.2 虚拟主机配置详解,apache2.2详解_PHP教程
apache2.2 虚拟主机配置详解,apache2.2详解
一、修改httpd.conf
打开appserv的安装目录,找到httpd.conf文件,分别去掉下面两行文字前面的#号。
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
去掉#意思是启用apache的虚拟主机功能。
#Include conf/extra/httpd-vhosts.conf
去掉这一行的#意思是从conf/extra/httpd-vhosts.conf这个文件导入虚拟主机配置
二、修改httpd-vhosts.conf
打开该文件,看到以下类似内容。虚拟主机的配置也是参照以下内容配置。下面对该内容进行讲解
NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin webmaster@dummy-host.www.phpStudy.net DocumentRoot "C:/Program Files/Apache2/docs/dummy-host.www.phpStudy.net" ServerName dummy-host.www.phpStudy.net ServerAlias www.dummy-host.www.phpStudy.net ErrorLog "logs/dummy-host.www.phpStudy.net-error.log" CustomLog "logs/dummy-host.www.phpStudy.net-access.log" common </VirtualHost>
NameVirtualHost *:80
注意1:NameVirtualHost 指定虚拟主机所使用的IP地址或域名,但是最好是IP地址。使用基于域名的虚拟主机时,NameVirtualHost是必要的指令。NameVirtualHost可以定义多个。 注意2:所有符合NameVirtualHost或
ServerAdmin 管理员邮箱
DocumentRoot 网站目录 (注意:如果网站目录中的路径有空格,请在路径两端加上双引号)
ServerName 要绑定的域名(必填)
ServerAlias 要绑定的虚拟主机的别名。(可选,如果多个域名,中间以空格分隔,如果没有,则去掉该行)
支持*,?两种通配符,比如 *.abc.com,表示任意一个abc.com的二级域名都可访问。
CustomLog 用户日志文件(可选,如果不需要,则去掉该行)
ErrorLog 错误日志(可选,如果不需要,则去掉该行)
基于IP地址的虚拟主机
<VirtualHost 172.20.30.40> DocumentRoot /www/example1 ServerName www.example.com </VirtualHost>
<VirtualHost 172.20.30.50 192.168.0.10:80> DocumentRoot /www/example2 ServerName www.example.org </VirtualHost>
每个虚拟主机可定义多个IP,之间用空格隔开
各种虚拟主机的混用
Listen 80 Listen 81 NameVirtualHost 172.20.30.40 <VirtualHost 172.20.30.40> DocumentRoot /www/example1 ServerName www.example.com </VirtualHost> <VirtualHost 172.20.30.40> DocumentRoot /www/example2 ServerName www.example.org </VirtualHost> NameVirtualHost 172.20.30.40:81 <VirtualHost 172.20.30.40:81> DocumentRoot /www/example3 ServerName www.example3.net </VirtualHost> # IP-based <VirtualHost 172.20.30.50> DocumentRoot /www/example4 ServerName www.example4.edu </VirtualHost> <VirtualHost 172.20.30.60:81 172.20.30.40:81> DocumentRoot /www/example5 ServerName www.example5.gov </VirtualHost>
虚拟主机混用时的问题
一、虚拟主机混用可以这样理解:一行NameVirtualHost指令定义的所有虚拟主机为一组;该组与一个基于IP的虚拟主机平级。即把一行NameVirtualHost定义的整个组看作是一个基于IP的虚拟主机。 二、虚拟主机指定的端口必须是Listen定义的。如果虚拟主机没有指定端口,则认为是80端口。如果NameVirtualHost * 这样定义,是指所有地址的所有已定义端口。 三、更具体的地址定义优先。比如NameVirtualHost指令定义了*:80,而某个基于IP的虚拟主机定义为192.168.0.1:80,那么此时如有对192.168.0.1:80的请求,那请求会被优先指向192.168.0.1:80定义的虚拟主机。所以为了避免混乱,不要定义相互有交叉或包含的地址区间。 四、一个虚拟主机,可以同时为基于域名和基于IP的。如上一例中最后一个虚拟主机。这样符合两种定义的请求都会被指同一个虚拟主机。有时要区别内外网对虚拟主机的访问时可以这样,因为来自内网的请求可能和来自外网的请求可能不一样,但是它们需要指向同一个虚拟主机。
使用"_default_"虚拟主机
这个虚拟主机可以理解成基于IP的虚拟主机
<VirtualHost _default_:*> DocumentRoot /www/default </VirtualHost>
这个虚拟主机将接管与其它虚拟主机IP和端口不匹配的请求。不过如此一来,主服务器将不会处理任何请求。因此把主服务器配置成一个虚拟主机是必要的。
本地机器代理在其它机器上运行的虚拟主机
<VirtualHost 158.29.33.248> ProxyPreserveHost On ProxyPass /foo/no ! ProxyPass /foo http://192.168.111.2 ProxyPassReverse /foo http://192.168.111.2 ServerName hostname.example.com </VirtualHost>
一、首先这是一个基于IP的虚拟主机,它接收并处理对IP地址158.29.33.248的请求。 二、ProxyPass /foo http://192.168.111.2 将把对http://158.29.33.248/foo的请求转换为一个代理请求,该请求指向http://192.168.111.2。 三、ProxyPass /foo/no ! 不代理针对/foo/no的请求。这个必须放在正常代理指令之前。 四、ProxyPreserveHost On 意思是传送原始请求的Host信息给被代理的机器。 五、ProxyPassReverse /foo http://192.168.111.2 可以保证请求URL在其它机器上被重定向后,本机处理时也可以保持一致。具体看手册关于反向代理的部分。 六、基于域名的虚拟主机也是同样的道理。不管是什么类型的虚拟主机,它只是处理归它处理的请求而已。
配置实例
需求1:
这是一个基于IP的虚拟主机使用实例
一个项目数据应用,为了防止由于域名解析问题导致不能正常访问,因此采用IP的方式访问接口。比如:http://61.122.3.6:8080/ 这样的方式。虚拟主机的配置如下:
1、在httpd.conf中Listen 80下面增加一行,内容为:Listen 8080,即监听8080端口
2、配置虚拟主机配置
#NameVirtualHost 61.122.3.6:8080 这一行可以不需要。经测试,基于IP地址的虚拟主机可不用设置NameVirtualHost项。 <VirtualHost 61.122.3.6:8080> ServerAdmin webmaster@dummy-host.www.phpStudy.net DocumentRoot "d:/web/openj" </VirtualHost>

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

寶塔面板是一款非常優秀的Linux系統下伺服器管理面板,它擁有強大的功能和友善的介面,可以幫助使用者輕鬆管理伺服器。在使用寶塔面板的過程中,有時候需要對虛擬主機進行限速操作,以確保伺服器的穩定性和流暢性。本文將介紹如何透過寶塔面板進行虛擬主機的限速設置,以達到良好的使用者體驗。一、限速概述限速是指主機頻寬進行限制,透過控制主機流量來確保伺服器的正常運作。在

Gin框架是一個輕量級的網頁框架,它提供了快速建立網頁應用程式所需的基本功能。 Gin框架具有靈活、高效、可擴展的特點,因此廣泛應用於互聯網領域。其中,Gin框架的虛擬主機與網域名稱綁定功能,是其它Web框架所不具備的重要特性,本文將對此功能進行詳細介紹。一、什麼是虛擬主機?虛擬主機是在一台實體主機上建立多個獨立的、互相隔離的虛擬主機,每個虛擬主機都有自己獨

PHP如何對接騰訊雲端伺服器ECS實現雲端虛擬主機部署引言:隨著雲端運算的快速發展,越來越多的企業和開發者選擇將應用程式部署到雲端伺服器上,以獲得更好的彈性、安全性和可伸縮性。本文將介紹如何使用PHP與騰訊雲端雲端伺服器ECS(ElasticComputeService)進行對接,並實現雲端虛擬主機的部署。步驟1:建立騰訊雲端伺服器ECS實例首先,我們需要在騰訊雲

國外免費php虛擬主機有DreamHost、Bluehost、Hostinger、000Webhost、FreeHostia、Zymic、ByetHost和SiteGround。

在網路時代,虛擬主機是一個非常受歡迎的服務,它可以讓使用者擁有自己的網站並輕鬆地進行管理。但是,在使用虛擬主機時,安全性問題也必須引起我們的重視。針對這種情況,寶塔面板給了一個很好的解決方案,可以幫助我們更好地保護虛擬主機的安全。本文將介紹如何透過使用寶塔面板進行虛擬主機的安全防護。一、設定登入密碼和連接埠在使用寶塔面板前,第一步就要設定一個安全的登入密碼。預設的

Nginx如何實現基於網域名稱的虛擬主機配置,需要具體程式碼範例Nginx是一款高效能的HTTP和反向代理伺服器,提供了靈活的設定選項來實現基於網域名稱的虛擬主機配置。在本篇文章中,我們將詳細介紹如何設定Nginx來實現基於網域名稱的虛擬主機,並提供具體的程式碼範例。首先,我們需要在Nginx的設定檔中新增虛擬主機的設定區塊。在Ubuntu系統上,預設的設定檔路徑為/et

Nginx虛擬主機優化配置,提升網站效能和使用者體驗引言:如今,隨著網路的不斷發展,網站的訪問量也越來越大。而作為網站的入口,Nginx的最佳化配置對於提升網站效能和使用者體驗起著至關重要的作用。本文將介紹一些Nginx虛擬主機最佳化配置的方法,並附帶程式碼範例,讓您更能理解和應用。一、虛擬主機的配置虛擬主機是Nginx中的重要概念,透過虛擬主機的配置,我們可

如何使用Nginx實現基於網域名稱和路徑的虛擬主機設定引言:在網路應用開發中,經常需要設定多個虛擬主機來提供不同的服務。 Nginx是一個高效能的HTTP和反向代理伺服器,透過使用Nginx,我們可以很方便地實現基於網域名稱和路徑的虛擬主機配置。本文將介紹如何使用Nginx來實現這樣的配置,並給出相應的程式碼範例。一、基於網域的虛擬主機配置在Nginx的設定檔中,使用
