apache虚拟主机配置

1.修改httpd.conf文件

打开apache的安装目录,找到httpd.conf文件,分别去掉下面两行文字前面的#号。

#LoadModule vhost_alias_module modules/mod_vhost_alias.so
#Include conf/extra/httpd-vhosts.conf  

上面两行分别表示启用apache的虚拟主机功能和从conf/extra/httpd-vhosts.conf这个文件导入虚拟主机配置

2.httpd-vhosts.conf说明

打开httpd-vhosts.conf文件内容类似如下:

NameVirtualHost *:80

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "c:/Apache24/docs/dummy-host.example.com"
    ServerName dummy-host.example.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/dummy-host.example.com-error.log"
    CustomLog "logs/dummy-host.example.com-access.log" common
</VirtualHost>

上述内容说明如下:

1)NameVirtualHost 指定虚拟主机所使用的IP地址或域名,但是最好是IP地址。使用基于域名的虚拟主机时,NameVirtualHost是必要的指令。NameVirtualHost可以定义多个。 
2)所有符合NameVirtualHost或<VirtualHost>标签定义的请求,都会被作为虚拟主机处理,而主服务器将不理会。NameVirtualHost定义了而<VirtualHost>标签没有定义的的请求,服务器会找不到相应的虚拟主机而将无法处理。所以每个NameVirtualHost定义的参数至少要有一个<VirtualHost>相匹配。
3)如果设置NameVirtualHost 或<VirtualHost>为*:80的话,所有针对80端口的请求,都会被虚拟主机处理,请求会根据域名指向某个虚拟主机。如果有来自80端口的请求,而所请求的域名没有被配置为虚拟主机,那将指向第一个虚拟主机。这样主服务器将无法收到来自80端口的任何请求。为此也要为主服务器配置一个虚拟主机。

ServerAdmin 管理员邮箱

DocumentRoot 网站目录 (注意:如果网站目录中的路径有空格,请在路径两端加上双引号)

ServerName 要绑定的域名(必填)

ServerAlias 要绑定的虚拟主机的别名。(可选,如果多个域名,中间以空格分隔,如果没有,则去掉该行)

支持*,?两种通配符,比如 *.abc.com,表示任意一个abc.com的二级域名都可访问。

CustomLog 用户日志文件(可选,如果不需要,则去掉该行)

ErrorLog 错误日志(可选,如果不需要,则去掉该行)

①基于主机名配置

1.修改系统文件C:\Windows\System32\drivers\etc下面的hosts文件,设置域名映射同一个IP。打开文件在最后添加如下地址:

127.0.0.1      www.demo1.com
127.0.0.1      www.demo2.com
127.0.0.1      www.demo3.com

2.根据上面的地址建立虚拟主机存放网页的根目录

/www/demo1/1.html
/www/demo2/2.html
/www/demo3/3.html


3.修改httpd.conf文件,配置如下:

在现有的web服务器上增加虚拟主机,必须也为现存的主机建造一个<VirtualHost>定义块。其中ServerName和DocumentRoot所包含的内容应该与全局的保持一致,且要放在配置文件的最前面,扮演默认主机的角色。

NameVirtualHost *:80
<VirtualHost *:80>  
  ServerName *
  DocumentRoot /www/ 
</VirtualHost>

<VirtualHost *:80>
  ServerName www.demo1.com
  DocumentRoot /www/demo1/

  <Directory "/www/demo1">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>

<VirtualHost *:80>
  ServerName www.demo2.com
  DocumentRoot /www/demo2/

  <Directory "/www/demo2">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>

<VirtualHost *:80>
  ServerName www.demo3.com
  DocumentRoot /www/demo3/

  <Directory "/www/demo3">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>

②基于IP

1. 假设服务器有个IP地址为192.168.1.254,使用ifconfig在同一个网络接口eth0上绑定3个IP:

[root@localhost root]# ifconfig eth0:1 192.168.1.250
[root@localhost root]# ifconfig eth0:2 192.168.1.251
[root@localhost root]# ifconfig eth0:3 192.168.1.252

2. 修改hosts文件,添加三个域名与之一一对应:

192.168.1.250   www.demo1.com
192.168.1.251   www.demo2.com
192.168.1.252   www.demo3.com

3. 建立虚拟主机存放网页的根目录,如在/www目录下建立demo1,demo2,demo3文件夹,其中分别存放1.html、2.html、3.html

/www/demo1/1.html
/www/demo2/2.html
/www/demo3/3.html
4.修改httpd-vhosts.conf文件,修改配置如下:
<VirtualHost 192.168.1.250:80>
  ServerName www.demo1.com
  DocumentRoot /www/demo1/

  <Directory "/www/demo1">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>

<VirtualHost 192.168.1.251:80>
  ServerName www.demo2.com
  DocumentRoot /www/demo2/

  <Directory "/www/demo2">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>

<VirtualHost 192.168.1.252:80>
  ServerName www.demo3.com
  DocumentRoot /www/demo3/

  <Directory "/www/demo3">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>

③基于端口

1.  修改配置文件

  将原来的

    Listen 80
      改为
     Listen 80
     Listen 8080

2. 更改虚拟主机设置:

<VirtualHost *:80>
  ServerName www.demo1.com
  DocumentRoot /www/demo1/

  <Directory "/www/demo1">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>

<VirtualHost *:8080>
  ServerName www.demo2.com
  DocumentRoot /www/demo2/

  <Directory "/www/demo2">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>

最后配置完成之后分别访问相应的地址:www.demo1.com,www.demo2.com,www.demo3.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值