搜尋
首頁後端開發php教程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或标签定义的请求,都会被作为虚拟主机处理,而主服务器将不理会。NameVirtualHost定义了而标签没有定义的的请求,服务器会找不到相应的虚拟主机而将无法处理。所以每个NameVirtualHost定义的参数至少要有一个相匹配。 注意3:如果设置NameVirtualHost 或为*:80的话,所有针对80端口的请求,都会被虚拟主机处理,请求会根据域名指向某个虚拟主机。如果有来自80端口的请求,而所请求的域名没有被配置为虚拟主机,那将指向第一个虚拟主机。这样主服务器将无法收到来自80端口的任何请求。为此也要为主服务器配置一个虚拟主机。

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>  

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1072328.htmlTechArticleapache2.2 虚拟主机配置详解,apache2.2详解 一、修改httpd.conf 打开appserv的安装目录,找到httpd.conf文件,分别去掉下面两行文字前面的#号。 #...
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
如何通过宝塔面板进行虚拟主机的限速设置如何通过宝塔面板进行虚拟主机的限速设置Jun 21, 2023 am 11:17 AM

宝塔面板是一款非常优秀的Linux系统下服务器管理面板,它拥有强大的功能和友好的界面,可以帮助用户轻松管理服务器。在使用宝塔面板的过程中,有时候需要对虚拟主机进行限速操作,以保证服务器的稳定性和流畅性。本文将介绍如何通过宝塔面板进行虚拟主机的限速设置,以达到良好的用户体验。一、限速概述限速是指对主机带宽进行限制,通过控制主机流量来保证服务器的正常运行。在

Gin框架的虚拟主机和域名绑定功能详解Gin框架的虚拟主机和域名绑定功能详解Jun 22, 2023 am 09:10 AM

Gin框架是一个轻量级的Web框架,它提供了快速构建Web应用程序所需的基本功能。Gin框架具有灵活、高效、可扩展的特点,所以被广泛应用于互联网领域。其中,Gin框架的虚拟主机和域名绑定功能,是其它Web框架所不具备的重要特性,本文将对该功能进行详细介绍。一、什么是虚拟主机?虚拟主机是在一台物理主机上创建多个独立的、互相隔离的虚拟主机,每个虚拟主机都有自己独

国外免费php虚拟主机有哪些国外免费php虚拟主机有哪些Oct 16, 2023 am 09:57 AM

国外免费php虚拟主机有DreamHost、Bluehost、Hostinger、000Webhost、FreeHostia、Zymic、ByetHost和SiteGround。

PHP如何对接腾讯云云服务器ECS实现云端虚拟主机部署PHP如何对接腾讯云云服务器ECS实现云端虚拟主机部署Jul 07, 2023 am 10:07 AM

PHP如何对接腾讯云云服务器ECS实现云端虚拟主机部署引言:随着云计算的快速发展,越来越多的企业和开发者选择将应用程序部署到云服务器上,以获得更好的弹性、安全性和可伸缩性。本文将介绍如何使用PHP与腾讯云云服务器ECS(ElasticComputeService)进行对接,实现云端虚拟主机的部署。步骤1:创建腾讯云云服务器ECS实例首先,我们需要在腾讯云

如何使用宝塔面板进行虚拟主机的安全防护如何使用宝塔面板进行虚拟主机的安全防护Jun 21, 2023 pm 05:37 PM

在互联网时代,虚拟主机是一个非常流行的服务,它可以让用户拥有自己的网站并轻松地进行管理。但是,在使用虚拟主机时,安全问题也必须引起我们的重视。针对这种情况,宝塔面板给出了很好的解决方案,可以帮助我们更好地保护虚拟主机的安全。本文将介绍如何通过使用宝塔面板进行虚拟主机的安全防护。一、设置登录密码和端口在使用宝塔面板前,第一步就要设置一个安全的登录密码。默认的

Nginx如何实现基于域名的虚拟主机配置Nginx如何实现基于域名的虚拟主机配置Nov 08, 2023 pm 08:05 PM

Nginx如何实现基于域名的虚拟主机配置,需要具体代码示例Nginx是一款高性能的HTTP和反向代理服务器,提供了灵活的配置选项来实现基于域名的虚拟主机配置。在本篇文章中,我们将详细介绍如何配置Nginx来实现基于域名的虚拟主机,并提供具体的代码示例。首先,我们需要在Nginx的配置文件中添加虚拟主机的配置块。在Ubuntu系统上,默认的配置文件路径为/et

如何使用Nginx实现基于域名和路径的虚拟主机配置如何使用Nginx实现基于域名和路径的虚拟主机配置Aug 02, 2023 pm 01:14 PM

如何使用Nginx实现基于域名和路径的虚拟主机配置引言:在网络应用开发中,经常需要配置多个虚拟主机来提供不同的服务。Nginx是一个高性能的HTTP和反向代理服务器,通过使用Nginx,我们可以很方便地实现基于域名和路径的虚拟主机配置。本文将介绍如何使用Nginx来实现这样的配置,并给出相应的代码示例。一、基于域名的虚拟主机配置在Nginx的配置文件中,使用

Nginx虚拟主机优化配置,提升网站性能和用户体验Nginx虚拟主机优化配置,提升网站性能和用户体验Jul 04, 2023 pm 05:55 PM

Nginx虚拟主机优化配置,提升网站性能和用户体验引言:如今,随着互联网的不断发展,网站的访问量也越来越大。而作为网站的入口,Nginx的优化配置对于提升网站性能和用户体验起着至关重要的作用。本文将介绍一些Nginx虚拟主机优化配置的方法,并附带代码示例,让您更好地理解和应用。一、虚拟主机的配置虚拟主机是Nginx中的一个重要概念,通过虚拟主机的配置,我们可

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),