科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道Apache动态虚拟主机配置方法

Apache动态虚拟主机配置方法

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

动态配置海量虚拟主机驻留,用于巨量数目的WEB站点。随apache提供的标准模块+mod_vhost_aliases实现动态配置的主机。作用是在检查完进来的URL后为这些目录生成实际路径。

作者:网络 来源:网络 2007年10月2日

关键字: 虚拟 动态 Web服务器 Apache Linux

  • 评论
  • 分享微博
  • 分享邮件
IT168 服务器学院】动态配置海量虚拟主机驻留,用于巨量数目的WEB站点。随apache提供的标准模块+mod_vhost_aliases实现动态配置的主机。作用是在检查完进来的URL后为这些目录生成实际路径。

  实现基于名字的动态虚拟主机指令:

  VirtualDocumentRoot
  指定模块如何从URL请求那里为动态虚拟主机构造DocumentRoot路径。
  VirtualScriptAlias
  和ScriptAlias一样,从URL请求那里构造一个包含CGI脚本的目录路径

  %N
  服务器的第N部分,如果服务器的全名是 vhost1.sohu.com,那么%1解析成vhost1,%2 解析成sohu,以此类推。

  %N+
  服务器名称的地N部分和其后所有其余部分。如果服务器全名为vhost1.sohu.com,那么%2+解析为sohu.com。

  %-N
  字符串倒数第N部分。如果服务器全名为vhost1.sohu.com,那么%-1解析成com。%-2解析成sohu

  %p
  动态虚拟主机的TCP端口号

  还可以从服务器名字中抽取的每一部分可以使用分类符%N.M继续对子部分进一步划分,其中N是主部分,M是子部分。例如:
  %1=vhost1
  %2=sohu
  %3=com

  可以划分子部分:
  %1.1=v
  %1.2=h
  %1.3=o
  %2.1=s
  %2.2=o

  例如:
  在httpd.conf文件中:
  UseCanonicalName off
  VirtualDocumentRoot /home/httpd/%1/%p

  要实现输入http://www.263.net:443
  需要在/home/httpd目录中建立www(%1)/443
  然后在/home/httpd/%1/443/目录中建立网页文件, 在DNS中设置解析
  访问即可。

  例2:

  将例子一中的VirtualDocumentRoot定义的内容删除。
  然后再添加:
  VirtualHostDocumentRoot /home/httpd/%1/%2

  要求:
  实现动态虚拟主机:
  www.abc.com
  www.xyz.com

  #mkdir /home/httpd/www
  #mkdir /home/httpd/www/abc
  #mkdir /home/httpd/www/xyz
  将网页文件放入/home/httpd/www/abc和/home/httpd/www/xyz即可
  在DNS中设置解析

  基于IP的动态虚拟主机

  需要的指令:

  VirtualDocumentRootIP

  和VirtualDocumentRoot相似,但它是从请求到达的IP地址那里构造动态虚拟主机DocumentRoot的路径地

  VirutalScriptAliasIP
  和VirtualScirptAlias相似,但它是从请求到达的IP地址那里,构造CGI脚本目录的路径。

  /*由于mod_vhost_aliases在请求到达服务器时构造动态主机路径,所以DocumentRoot和ScriptAlias实际上是根据客户尝试请求的虚拟主机进行变化的变量,所以在httpd.conf当中,不必针对每个虚拟主机明确指定这两个指令。实际上不需要在httpd.conf中指定任何虚拟主机,网管唯一要做的是,确保在服务器上针对每个虚拟主机都存在一个目录,如果该目录不存在,客户端将收到一个not found的信息。*/

  例子:
  环境:本机IP:192。168。9。254

  一、增加IP地址方法:
  #ifconfig 192.168.9.1
  #ifconfig 192.168.9.2

  // 重新启动后失效,若希望永远生效,请增加eth0:0和eth0:1.以192.168.9.1为例,%1=192,%2=168,%=9,%4=1

  二、修改httpd.conf文件

  UseCanonicalName DNS
  VirtualDocumentRootIP /home/httpd/www/%4
  VirtualScriptAliasIP /home/httpd/www/cgi-bin/%4
  重新启动apache。

  三、在相关位置建立以下目录

  #mkdir /home/httpd/www
  #mkdir /home/httpd/www/1
  #mkdir /home/httpd/www/cgi-bin/1
  //创建到192。168。9。1的虚拟主机网页根目录
  #mkdir /home/httpd/www/2
  #mkdir /home/httpd/www/cgi-bin/2
  //创建到192.168.9.2的虚拟主机网页根目录。

  四、在DNS中设置,将192.168.9.1解析成 www.163.com
  将192.168.9.2解析成 www.263.net

  可以访问了。

  /*由于IP地址的每个部分可以取1---254之间的数值,所以这个方法可以建立254个基于IP的虚拟主机。也可以做支持254*254 台的虚拟主机,但意义不大。*/
  UseCanonicalName on
  apahce使用 ServerName和Port生成自指URL,来构造服务器的规范名称。

  UseCanonicalName off
  apache使用由客户提供的主机头指令的主机名称和端口号为服务器构造自指URL, off经常用于基于名称的动态虚拟主机

  UseCanonicalName DNS 用于基于IP的动态虚拟主机。apache使用DNS执行客户连接IP地址搜索时确定的主机名,构造服务器自指URL,可以用在服务器环境,但在基于名字的虚拟主机下不起作用地。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章