httpd常用配置:虚拟主机
2020-02-21 本文已影响0人
Simon_Ye
虚拟主机
站点标识:socket
- IP相同,但端口不同;
- IP不同,但端口均为默认端口;
- FQDN不同;
请求报文中首部:
HOST: www.magedu.com
有三种实现方案:
-
基于IP:
为每个虚拟主机准备至少一个IP地址; -
基于PORT:
为每个虚拟主机使用至少一个独立的port; -
基于FQDN:
为每个虚拟主机使用至少一个FQDN;
注意:一般虚拟主机不要与中心主机混用;因此,要使用虚拟主机,得先禁用'main'主机;禁用方法:注释中心主机的DocumentRoot指令即可;
虚拟主机的配置方法:
<VirtualHost IP:PORT>
ServerName FQDN
DocumentRoot " "
</VirtualHost>
-
其它可用指令:
ServerAlias #虚拟主机的别名,可多次使用; ErrorLog #错误日志 CustomLog #访问日志 <Directory " "> #Directory代码配置块 ... </Directory> Alias #别名 ...
示例:
-
基于IP的虚拟主机示例:
<VirtualHost 172.16.100.6:80> ServerName www.a.com DocumentRoot "/www/a.com/htdocs" </VirtualHost> <VirtualHost 172.16.100.7:80> ServerName www.b.net DocumentRoot "/www/b.com/htdocs" </VirtualHost> <VirtualHost 172.16.100.8:80> ServerName www.c.org DocumentRoot "/www/c.com/htdocs" </VirtualHost>
-
基于端口的虚拟主机:
<VirtualHost 172.16.100.6:80> ServerName www.a.com DocumentRoot "/www/a.com/htdocs" </VirtualHost> <VirtualHost 172.16.100.6:808> ServerName www.b.net DocumentRoot "/www/b.com/htdocs" </VirtualHost> <VirtualHost 172.16.100.6:8080> ServerName www.c.org DocumentRoot "/www/c.com/htdocs" </VirtualHost>
-
基于FQDN的虚拟主机:
NameVirtualHost 172.16.100.6:80 #如果是httpd-2.2,使用基于FQDN的虚拟主机时,需要事先使用此指令; <VirtualHost 172.16.100.6:80> ServerName www.a.com DocumentRoot "/www/a.com/htdocs" </VirtualHost> <VirtualHost 172.16.100.6:80> ServerName www.b.net DocumentRoot "/www/b.com/htdocs" </VirtualHost> <VirtualHost 172.16.100.6:80> ServerName www.c.org DocumentRoot "/www/c.com/htdocs" </VirtualHost>