您的位置:首页操作系统Linux → Linux下虚拟域名的实现(2)

Linux下虚拟域名的实现(2)

时间:2004/10/15 0:28:00来源:本站整理作者:蓝点我要评论(0)

    

目前Linux操作系统十分火爆,所以很多朋友希望了解一下Linux下虚拟域名的实现过程。下面就基于目前比较流行的RedHat来讨论一下。


二、Apache服务器的配置

  Apache服务器是目前互联网上使用最多的Web服务器,它可以维护非常繁忙的站点。RedHat 6.0捆绑了Apache Web Server 1.3。它的配置文件位于"/etc/httpd/conf"目录下,有httpd.conf、srm.conf、access.conf,下面讨论一下与虚拟域名有关的配置:

  1、静态配置

  修改配置文件 httpd.conf 的步骤:

  (1) 首先设置UseCanonicalName为off。它指示用服务器Host:header的内容代替ServerName 的值来提供给环境变量SERVER_NAME。

  (2) 然后加入:

  NameVirtualHost xxx.xxx.xxx.xxx其中xxx.xxx.xxx.xxx为所要配置的虚拟服务器的IP地址。在此可配置多个虚拟IP地址,当然要与DNS服务器中的配置一致。(注意:这里要用IP地址,不能用域名。)

  (3) 接下来为每个虚拟域名加入一段记录:

  < virtualhost xxx.xxx.xxx.xxx>
  .....
  < /virtualhost>

  xxx.xxx.xxx.xxx要和NameVirtualHost配置的IP地址一致。在两个标志之间可加入的配置参数有:

  ServerName后面跟你要增加的虚拟域名,如aaa.domain.com ;
  Documentroot如果你映射到本机的路径就加在后面,如"/home/aaa" ;
  redirect如果你映射到远端的URL可加在后面,有两个参数,第一个是虚拟域名的相对路径,第二个是远端站点的URL;
  ServerAlias后可加入本域名的别名,可使用通配符,如*.aaa.domain.com 。

  下面举两个例子:

  例3、映射到本机的物理路径:

  < virtualhost xxx.xxx.xxx.xxx>
  DocumentRoot "/home/test"
  ServerName test.domain.com
  < virtualhost>


例4、映射到远端的URL:

  < virtualhost xxx.xxx.xxx.xxx>
  ServerName test1.doamin.com
  redirect / http://test.domain1.com/welcome.htm
  < /virtualhost>

  还有一些参数,象log文件的位置、超时的设置、缓冲区的设置等等,在此不一一介绍,可以参考Apache服务器的在线帮助文件。配置好httpd.conf文件后需要重新启动Apache的后台守护进程httpd,

  [root@domain /root]# /etc/rc.d/init.d/httpd restart

  每增加一个虚拟域名就要增加一段位于 < VirtualHost...>...< /VirtualHost> 之间的配置代码,而且只有在重新启动 httpd 后新配置才能生效。

  2、动态配置

  可以发现,如果要配置大量的虚拟域名将大大增加配置文件的长度,这样还会使Apache启动变慢,占用更多的内存,而且也不容易实现在线申请。可以通过选择动态方式来配置。这样不必事先写好配置,而是通过编写一定的动态规则来自动生成或随时从独立的配置文件中读取信息。

  Apache有一个强大的扩展功能,即模块(Modules)的特性。模块可对服务器的功能进行扩充,它在运行和使用时才装入服务器,这样比一直放入服务器中要节省内存空间,同时也比调用外部CGI程序速度快。

  现在使用一个功能强大的模块来实现动态配置虚拟域名,这就是mod_rewrite。它负责侦听从客户机送出的URL地址,并基于一组规则表达式对该URL来进行重写。这类似于URL别名概念,但它更进了一步,输出的URL可以映射到其他主机的任何URL地址上。 修改配置文件httpd.conf的步骤:

  (1) 先设置UseCanonicalName为off 。

  (2) 使用RewriteEngine on打开rewrite引擎。用RewriteMap设定配置文件的位置和属性,用RewriteCond和RewriteRule制定相应的规则。

  例5、httpd.conf 文件中相关配置的一个例子:

  RewriteEngine on
  RewriteMap lowercase int:tolower
  # 定义独立的配置文件的位置
  RewriteMap vhost dbm:/www/conf/vhostdbm
  # 利用独立的配置文件重映射虚拟域名
  RewriteCond ${vhost:%1} ^(/.*)$
  RewriteRule ^/(.*)$ %1/docs/$1

  RewriteCond %{REQUEST_URI} ^/cgi-bin/
  RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
  RewriteCond ${vhost:%1} ^(/.*)$
  RewriteRule ^/(.*)$ %1/cgi-bin/$1

  这里的 vhostdbm 文件格式见"CGI 程序的编制" 。

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 Cygwin安装教程(图文)CentOS安装教程(CentOLinux系统安装Vmware图

最新文章 Linux测试网速命令是什Cygwin安装教程(图文) CentOS安装教程(CentOS 6.4图文安装)Linux系统安装Vmware图文教程Stingray Traffic Manager配置教程ubuntu u盘安装图解

人气排行 Linux系统安装Vmware图文教程Cygwin安装教程(图文)命令行Makefile和make命令讲解教程关于linux vim命令 总结CentOS安装教程(CentOS 6.4图文安装)用vnc实现windows远程连接linux桌面 vnc安装Linux系统下应用软件安装教程教你手工卸载ubuntu下的vmware系列软件