apache - 虚拟主机

虚拟主机

在单一机器上运行多个网站(company1.example.com, company2.example.com)

虚拟主机方式:
基于IP:每个IP一个站点
基于域名:每个IP多个站点

主机配置以外的部分称为默认服务器、主服务器或全局服务器

基于域名

假设仅有一个IP地址,却想支持多个WEB站点。

ServerName 127.0.0.1
NameVirtualHost *:80

<VirtualHost *:80>
ServerName elewei.cn
DocumentRoot "/var/www/html/infoclue"

<VirtualHost *:80>
ServerName github.com/elewei
DocumentRoot "/var/www/html/github"

http -S 用于查看当前Apache中配置的虚拟主机信息

使用ServerAlias配置可以为一个特定虚拟主机指定多个域名

ServerName elewei.cn
ServerAlias www.elewei.cn elewei.com

如果虚拟主机域名无法找到,则执行第一个

问题:把所有请求(符合虚拟主机或使用IP地址)都导向默认主机,并处理可能出现的“404”错误信息。

<VirtualHost *:80>
ServerName default
DocumentRoot /www/htdocs
ErrorDocument 404 /site_list.html

基于IP

问题:在系统上设定多个IP地址,并想要在各个地址上支持一个网站。

ServerName 127.0.0.1

<VirtualHost 10.0.0.1>
ServerName example.com
DocumentRoot "/var/www/html/infoclue"

ErrorLog /opt/data/www/logs/error_log
CustomLog /opt/data/www/logs/access_log combined

<VirtualHost 10.0.0.2>
ServerName example2.com
DocumentRoot "/var/www/html/infoclue2"

默认方式的虚拟主机

接收所有未设定以IP寻址主机的请求


DocumentRoot /www/htdocs

_default_关键字会建立虚拟主机,处理所有未设定虚拟主机的地址:端口号的请求

混合使用虚拟主机

ServerName 127.0.0.1
NameVirtualHost 10.0.0.1:80
NameVirtualHost 10.0.0.2:80

<VirtualHost 10.0.0.1:80>
ServerName elewei.cn
DocumentRoot "/var/www/html/elewei"

<VirtualHost 10.0.0.1:80>
ServerName infoclue.net
DocumentRoot "/var/www/html/infoclue"

<VirtualHost 10.0.0.2:80>
ServerName helpnow.cn
DocumentRoot "/var/www/html/helpnow"

<VirtualHost 10.0.0.2:80>
ServerName moringing.net
DocumentRoot "/var/www/html/moringing"

测试环境中以端口寻址的虚拟主机

Listen 8080
<VirtualHost 10.0.0.1:8080>
DocumentRoot /var/www/html/port8080

Listen 9090
<VirtualHost 10.0.0.1:9090>
DocumentRoot /var/www/html/port9090

多个地址显示相同的网页内容

NameVirtualHost 192.168.1.1:80
NameVirtualHost 192.168.1.2:80

<VirtualHost 192.168.1.1:80 192.168.1.2:80>
DocumentRoot /www/vhost/server
ServerName server.exmaple.com
ServerAlias server

使用模块mod_vhost_alias建立大量的虚拟主机

使用mod_rewrite规则建立大量虚拟主机

在数据库里定义虚拟主机mod_vhost_dbi

posted @ 2016-12-28 16:51  elewei  阅读(217)  评论(0)    收藏  举报