用Apache实现虚拟主机服务

原创 2004年10月20日 10:24:00
用Apache实现虚拟主机服务
2004-02-07          点击: 1
用Apache实现虚拟主机服务

  什么是虚拟主机服务

  所谓的虚拟主机服务就是指将一台机器虚拟成多台WEB服务器。举个例子来说,一家公司想从事提供主机代管服务,它为其它企业提供WEB服务。那么它肯定不是为每一家企业都各准备一台物理上的服务器,而是用一台功能较强大的大型服务器,然后用虚拟主机的形式,提供多个企业的WEB服务,虽然所有的WEB服务就是这台服务器提供的,但是让访问者看起来却是在不同的服务器上获得WEB服务一样。

  具体地说,就是,我们可以利用虚拟主机服务将两个不同公司company1.com与www.company2.com的主页内容都存放在同一台主机上。而访问者只需输入公司的域名就可以访问到它想得到的主页内容。

  用Apache设置虚拟主机服务通常可以采用两种方案:基于IP地址的虚拟主机和基于名字的虚拟主机,下面我们分别介绍一下它们的实现方法。以便大家在具体的应用中能够选择最合适的实现方法。

  设置实现基于IP地址的虚拟主机服务

  实现前提

  这种方式需要在机器上设置IP别名,也就是在一台机器的网卡上绑定多个

  IP地址去为多个虚拟主机服务。而且要使用这项功能还要确定在你的LINUX内核中必须支持IP别名的设置,否则你还必须重新编译内核。

  下面举一个拥有两个虚拟主机的服务设置,以供参考。

  2.配置步骤

  假设,我们用来实现虚拟主机服务的机器,首先已经为自己提供了WEB服务,现在将为新的一家公司company1.com提供虚拟主机服务。

  规划IP地址:为虚拟主机申请新的IP地址。(假设本机IP地址为202.101.2.1)

  company1.com 202.101.2.2

  2) 让ISP作好相应的域名解析工作。

  3) 为网卡设置IP别名:

  /sbin/ifconfig eth0:0 202.101.2.2 netmask 255.255.255.0

  4) 重新设置“/etc/httpd/conf/httpd.conf”,在文件中加入:

  ServerAdmin webmaster@yourdomain.com

  DocumentRoot /home/httpd/www.company1.com

  ServerName company1.com

  ErrorLog /var/log/httpd/www.company1.com/error.log

  5)建立相应的目录。

  mkdir /home/httpd/www.company1.com

  mkdir /var/log/httpd/www.company1.com/error.log

  6)将相应的主页内容存放在相应的目录中即可。

  3.不利因素

  这种虚拟主机的实现方法有一个严重的不足,那就是,每增加一个虚拟主机,就必须增加一个IP地址。而由于IP地址空间已经十分紧张,所以通常情况下是无法取得这么多的IP地址的。而且从某种意义上说,这也是一种IP地址浪费。

  设置实现基于名字的虚拟主机服务

  而基于名字的虚拟主机服务,是比较适合使用的一种方案。因为它不需要更多的IP地址,而且配置简单,无须什么特殊的软硬件支持。现代的浏览器大都支持这种虚拟主机的实现方法。当然,这也就是指一些早期的客户端浏览器也许不支持这种虚拟主机的实现方法。

  正是以上原因,我们没有理由不使用基于名字的虚拟主机服务而使用基于IP地址的虚拟主机服务。配置基于名字的虚拟主机服务需要修改配置文件:“/etc/httpd/conf/httpd.conf”,在这个配置文件中增加以下内容。

  NameVirtualHost 202.101.2.1

  ServerAdmin webmaster@yourdomain.com

  DocumentRoot /home/httpd/www.company1.com

  ServerName company1.com

  ErrorLog /var/log/httpd/www.company1.com/error.log

  ServerAdmin webmaster@yourdomain.com

  DocumentRoot /home/httpd/www.company2.com

  ServerName company2.com

  ErrorLog /var/log/httpd/www.company2.com/error.log

  也就是在基于IP地址的配置基础上增加一句:NameVirtualHost 202.101.2.1而已。在本例中,为了体现只需要增加一次,所以特别地设置了两个虚拟主机服务。

  最后也是建立相应的目录,将主页内容放到相应的目录中去就可以了。

MAC为Apache2服务器配置多个虚拟主机

MAC为Apache2服务器配置多个虚拟主机当我们在做项目的时候有时候有时候需要同时操作多个项目,但是apache服务器默认值只提供一个根目录,这时候就比较麻烦了,我们可以通配置多个虚拟主机来实现这个...
  • u014142379
  • u014142379
  • 2016年09月12日 20:35
  • 2812

PHP实践之路(二)apache虚拟主机配置

PHP实践之路(目录索引) 一、环境        1)操作系统:windows xp        2)apache2.2 二、背景         当我们在开发项目或者在学习时,总会建立多个项...
  • CYXLZZS
  • CYXLZZS
  • 2013年06月09日 11:07
  • 3536

squid2.6加速WEB支持虚拟主机配置心得体会

本人一台web服务器,日流量约10万,上面有好几个虚拟主机,近日装上Squid 2.6进行WEB加速,Squid 和Apache均在同一台服务器上面,效果非常明显,看到论坛上好多人问如何配置squid...
  • kozazyh
  • kozazyh
  • 2008年02月10日 23:14
  • 452

Apache的配置,DNS解析,虚拟主机

修改在配置文件httpd.conf 1、端口号的设置 搜索 listen 进行修改,默认为80端口,如果修改为其他,访问时要加端口号。 2、默认首页的设置 搜索directoryindex 进...
  • u012887301
  • u012887301
  • 2016年08月20日 12:12
  • 1353

windows下apache虚拟主机的配置

我们这里主要讲最常用的基于域名的虚拟主机的配置。 1.记事本打开hosts (win7打不开的给权限),例如路径:C:\ Windows\ System32\ drivers\etc, 写入如下内容:...
  • gaolicsdn
  • gaolicsdn
  • 2016年12月11日 10:21
  • 3248

apache开启虚拟主机方法

今天打开xampp,开启apache后,端口都也没有被占用,但localhost或127.0.0.1都打不开;经排除问题后,发现原来是开启了虚拟主机,现在把以前开启虚拟主机的方法总结一下。 ...
  • zk_haha09
  • zk_haha09
  • 2015年09月04日 16:03
  • 1938

Apache配置虚拟主机的三种方式

Apache配置虚拟主机的三种方式 一、基于IP 二、基于主机名 三、基于端口 首先在Apache下的htdocs目录下,新建两个目录,test1和test2 每个目录下新建一个测试页面inde...
  • xiaokui_wingfly
  • xiaokui_wingfly
  • 2016年05月23日 14:41
  • 7757

在Apache中配置基于主机名的虚拟主机

在Apache中配置基于主机名的虚拟主机 在同一台pc(ip:192.168.1.1)中配置三个虚拟主机: www.1.com www.2.com www.3.com ...
  • htttw
  • htttw
  • 2011年10月09日 00:44
  • 4168

apache基于端口的虚拟主机配置

同一个服务器只能有一个ip,这样如果在一个服务器上配置多个网站的话,如果用ip访问,访问的时候怎么才能区分你要访问的是哪个网站呢? 这就需要虚拟主机配置了,本文只介绍如何根据端口配置虚拟主机: 需要...
  • u013337743
  • u013337743
  • 2016年05月15日 14:52
  • 3723

apache 配置虚拟主机的小陷阱(不注意,还真能踩坑)

Mac apache 设置 虚拟主机时踩过的那些坑
  • yun__yang
  • yun__yang
  • 2016年08月21日 17:30
  • 6900
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用Apache实现虚拟主机服务
举报原因:
原因补充:

(最多只允许输入30个字)