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 青锋建站 版权所有