官方文档:http://httpd.apache.org/docs/trunk/vhosts/
一、虚拟主机:一台真实主机上运行多个站点,每个站点的服务称为一个虚拟主机。
二、配置方法
说明:hosts文件中,设置的域名和IP,是本地调试时客户端访问服务器的域名和IP地址,不输入端口则默认请求80端口(http)或443端口(https)
<VirtualHost *:80> 中IP和端口表示哪些IP的客户端可以与服务器的80端口通信。* 表示所有IP都可以,指定IP表示只有指定IP的客户端能访问该虚拟主机
类型:(根据客户端如何访问来划分)
1. 基于域名
客户端使用域名访问站点。虚拟主机设置的server_name值是域名,web服务器根据请求传来的不同域名来确定访问的是哪个虚拟主机。这样一台服务器(真机)
可以设多个站点,域名也方便记忆,是最主流的配置方式。
2. 基于IP
客户端使用IP地址来访问站点,虚拟主机设置的server_name值是IP地址,web服务器以客户端输入的IP来区分访问的是哪个虚拟主机。实际使用时,一般一台web主机
只有一个IP地址,那就只能有一个虚拟主机,只能部署一个站点,生产环境中基本不会使用。一般用于本地调试,自己开虚拟机玩一玩
3. 基于端口
客户端访问站点时除了输入域名或IP,要输入站点的端口号,虚拟主机设置的server_name值是IP:端口或域名:端口,web服务器以客户端请求的不同端口来区分访问的是
哪个虚拟主机,这种方式一台服务器(真机)也可以设多个站点,还不用买域名。但是用户输入麻烦,还可能端口冲突,监听多个端口也消耗服务器性能。生产环境中也不会使用,
一般就自己本地玩玩,或开个端口给开发人员调试使用。
三、样例
<VirtualHost *:80>
ServerName blog.com
ServerAlias www.blog.com
DocumentRoot "f:/www/wwwroot/test"
ErrorLog "logs/blog.com-error.log"
CustomLog "logs/blog.com-access.log" common
<Directory ${www}/test>
directoryindex index.html index.php
options Indexes FollowSymLinks
require all granted
</Directory>
</VirtualHost>