目录
apache2.2 虚拟主机配置详解,apache2.2详解
一、修改httpd.conf
二、修改httpd-vhosts.conf
基于IP地址的虚拟主机
各种虚拟主机的混用
虚拟主机混用时的问题
使用"_default_"虚拟主机
首页 后端开发 php教程 apache2.2 虚拟主机配置详解,apache2.2详解_PHP教程

apache2.2 虚拟主机配置详解,apache2.2详解_PHP教程

Jul 12, 2016 am 09:04 AM
虚拟主机

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

热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.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何通过宝塔面板进行虚拟主机的限速设置 如何通过宝塔面板进行虚拟主机的限速设置 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。

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

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

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

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

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

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

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

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

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

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

See all articles