有很多平时喜欢钻研的童鞋会发现,为什么有时候自己访问某XXse网站时,总是更新IP地址,内容却与以前一样。这个时候就要了解虚拟主机的概念了。了解这个概念,能够帮助运维同学,更内涵的隐藏自己的主机,或者让一台apache支持多个网站的共同运营。

参考资料:
1 http://httpd.apache.org/docs/2.2/
2《Apache cookbook》

虚拟主机寻址方式

IP地址方式:每台虚拟主机都有其唯一的IP地址

名称寻址方式:多台虚拟主机会以不同的名称在同一IP地址上运行

 以名称寻址的虚拟主机
使用NameVirtualHost *指令以及<VirtualHost>区块

  1. ServerName 127.0.0.1
  2. NameVirtualHost * #表示所设定的主机可在所有的地址上运行
  3. <VirtualHost *>
  4. ServerName test1.name #默认的第一个主机会接收未列出虚拟主机的请求
  5. DocumentRoot "C:/Apache2.2/htdocs/test1"
  6. </VirutalHost>
  7. <VirtualHost *>
  8. ServerName test2.name
  9. DocumentRoot "C:/Apache2.2/htdocs/test2"
  10. </VirutalHost>
指定一台名称寻址的主机位默认服务器,并在查找不到主机时,转向默认网页

  1. <VirtualHost *>
  2. ServerName default
  3. DocumentRoot /www/htdocs
  4. ErrorDocument 404 /site.html
  5. </VirutualHost>

对特定主机设置多个名称

  1. ServerAlias www.cu.com chinaunix.cu

以IP寻址的虚拟主机

可以在系统上设定多个IP,然后各自支持某个网站

  1. ServerName 127.0.0.1
  2. <VirtualHost 10.0.0.1>
  3. ServerName test.name
  4. DocumentRoot "C:/Apache2.2/htdocs/test1"
  5. </VirtualHost>
  6. <VirtualHost 10.0.0.2>
  7. ServerName test2.name
  8. DocumentRoot "C:/Apache2.2/htdocs/test2"
  9. </VirutalHost>
建立IP寻址的默认虚拟主机

  1. <VirtualHost _default_>
  2. DocumentRoot /www/htdocs
  3. </VirtualHost>
  4. #_default_ 建立虚拟主机,处理所有未设定虚拟主机“地址:端口号”的请求
  5. #_default_ 可与端口号同时使用 _default_:443 会接受443端口号的所有未设定虚拟主机的请求
端口号寻址的虚拟主机

  1. Listen 8080
  2. <VirtualHost 10.0.0.1:8080>
  3. DocumentRoot "C:/Apache2.2/htdocs/test_port8080"
  4. </VirtualHost>
  5. Listen 8081
  6. <VirtualHost 10.0.0.1:8081>
  7. DocumentRoot "C:/Apache2.2/htdocs/test2_port8081"
  8. </VirtualHost>
这种用法不常见,因为请求时,很麻烦,需要填入端口号:比如 www.test.com:8080/
在多个地址上显示相同的网页内容

  1. NameVirtualHost 192.168.1.1
  2. NameVirtualHost 170.1.2.3
  3. <VirtualHost 192.168.1.1 170.1.2.3>
  4. DocumentRoot "C:/Apache2.2/htdocs/test"
  5. </VirtualHost>

Apache虚拟主机-解惑篇的更多相关文章

  1. apache 虚拟主机详细配置:http.conf配置详解

    apache 虚拟主机详细配置:http.conf配置详解 Apache的配置文件http.conf参数含义详解 Apache的配置由httpd.conf文件配置,因此下面的配置指令都是在httpd. ...

  2. Apache虚拟主机配置

    在一个Apache服务器上可以配置多个虚拟主机,实现一个服务器提供多站点服务,其实就是访问同一个服务器上的不同目录.Apache虚拟主机配置有3中方法:基于IP配置.基于域名配置和基于端口配置,这里介 ...

  3. 烂泥:apache虚拟主机的学习与应用

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 要配置apache的虚拟主机,我们需要分以下几步进行: 1. 检查apache虚拟主机模块 2. 开启apache虚拟主机功能 3. httpd-vho ...

  4. Apache虚拟主机配置(多个域名访问多个目录)

    Apache虚拟主机配置(多个域名访问多个目录) 为了方便管理虚拟主机,我决定使用一种方法,那就是修改httpd-vhosts.conf文件. 第一步首先要使扩展文件httpd-vhosts.conf ...

  5. 配置apache虚拟主机的实例总结

    如何实现apache虚拟主机配置. 1.基于ip地址的虚拟主机Listen 80<VirtualHost 172.20.30.40> DocumentRoot /home/httpd/ht ...

  6. apache虚拟主机安装注意事项

    apache虚拟主机在添加的时候,总是会有一些莫名其妙的问题,后来发现可以使用一个参数去验证的: xxxxx/httpd -S //这个参数会去检查虚拟主机配置的正确性,很好用 因为有时候可能就是缩进 ...

  7. django 项目部署在 Apache 后, 设置二级域名(Apache虚拟主机 、 万网二级域名设置)

    上一篇文章简单说了怎么把django的项目部署到Apache上. 现在想弄个二级域名,也就是我原来有个域名 www.mysite.com,现在我想弄个 bbs.mysite.com ,该怎么做呢. 要 ...

  8. Ubuntu16.04+Apache虚拟主机配置详解

    在window下,Apache的配置文件是httpd.conf,但在Linux下安装了Apache后发现其配置并不像window下那么简单,Linux下Apache将各个设置项分在了不同的配置文件中, ...

  9. windows环境下,apache虚拟主机配置

    在windows环境下,apache从配置文件的相关配置: Windows 是市场占有率最高的 PC 操作系统, 也是很多人的开发环境. 其 VirtualHost 配置方法与 Linux 上有些差异 ...

随机推荐

  1. 获取APK的package名和activity名

    使用 aapt dump badging + 需要安装的APK

  2. spring boot 学习10 定义springboot的两种方法

    使用spring boot的两种方法: A:继承spring-boot-starter-parent项目 这种方式很简单,只需要在POM里面添加parent父工程即可. B: 如果你不喜欢继承spri ...

  3. phonegap制作windows phone包

    下载SDK win7及以下版本下载SDK http://www.microsoft.com/zh-cn/download/confirmation.aspx?id=27570 WIN8下载SDK ht ...

  4. 第九章 Java中线程池

    Java中的线程池是运用场景最多的并发框架,几乎所有需求异步或并发执行任务的程序都可以使用线程池.在开发过程中,合理地使用线程池能够带来3个好处. 降低资源消耗:通过重复利用已创建的线程降低线程创建和 ...

  5. JavaScript语言基础-对象与数组

  6. logstash日志写入kafka

    安装kafka curl -L -O https://mirrors.cnnic.cn/apache/kafka/0.10.2.1/kafka_2.10-0.10.2.1.tgz tar xf kaf ...

  7. GCD详细用法

    一.延迟执行 1.介绍 第一种方法,该方法在那个线程调用,那么run就在哪个线程执行(当前线程),通常是主线程. [self performSelector:@selector(run) withOb ...

  8. openGL 预定义变量04

    OpenGL4.0 GLSL预定义变量 GLSL为不同的渲染阶段定义了一些特定的变量.这些预定义(也叫做内置变量)有特定的属性. 所有的预定义变量都以gl_开头.用户定义的变量不能以此开头. 下面分类 ...

  9. C#连接MSSQL

    本文将介绍如何用C#连接MSSQL,C#连接SQL十分简单.我们一步一步来操作. 1.打开Microsoft SQL Server Management Studio创建一个数据库,这里我创建一个数据 ...

  10. php环境引起的"syntax error unexpected $end"

    今天在网上淘了一段php和javascript的二级联动下拉菜单的代码.本地运行的时候,一直提示错误 syntax error unexpected $end 本来还以为是括号或者标签没有用好,但是仔 ...