您好,欢迎来到思海网络,我们将竭诚为您提供优质的服务! 诚征网络推广 | 网站备案 | 帮助中心 | 软件下载 | 购买流程 | 付款方式 | 联系我们 [ 会员登录/注册 ]
促销推广
客服中心
业务咨询
有事点击这里…  531199185
有事点击这里…  61352289
点击这里给我发消息  81721488
有事点击这里…  376585780
有事点击这里…  872642803
有事点击这里…  459248018
有事点击这里…  61352288
有事点击这里…  380791050
技术支持
有事点击这里…  714236853
有事点击这里…  719304487
有事点击这里…  1208894568
有事点击这里…  61352289
在线客服
有事点击这里…  531199185
有事点击这里…  61352288
有事点击这里…  983054746
有事点击这里…  893984210
当前位置:首页 >> 技术文章 >> 文章浏览
技术文章

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

添加时间:2010-11-9  添加: admin 
目前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

分享到:

顶部 】 【 关闭
版权所有:佛山思海电脑网络有限公司 ©1998-2024 All Rights Reserved.
联系电话:(0757)22630313、22633833
中华人民共和国增值电信业务经营许可证: 粤B1.B2-20030321 备案号:粤B2-20030321-1
网站公安备案编号:44060602000007 交互式栏目专项备案编号:200303DD003  
察察 工商 网安 举报有奖  警警  手机打开网站