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

目前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 程序的编制" 。 (出处:PConline)

(0)

相关推荐

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

    目前Linux操作系统十分火爆,所以很多朋友希望了解一下Linux下虚拟域名的实现过程.下面就基于目前比较流行的RedHat来讨论一下. 二.Apache服务器的配置 Apache服务器是目前互联网上使用最多的Web服务器,它可以维护非常繁忙的站点.RedHat 6.0捆绑了Apache Web Server 1.3.它的配置文件位于"/etc/httpd/conf"目录下,有httpd.conf.srm.conf.access.conf,下面讨论一下与虚拟域名有关的配置: 1.静态配

  • Linux下虚拟域名的实现(1)

    目前Linux操作系统十分火爆,所以很多朋友希望了解一下Linux下虚拟域名的实现过程.下面就基于目前比较流行的RedHat来讨论一下. 一.DNS服务器的设置 我们知道互联网网是基于TCP/IP协议的,要进行通信必须获得对方的IP地址,这是通过DNS服务器来实现的.因此要想实现虚拟域名首先应当令DNS服务器接受该虚拟域名,即把它映射到指定的IP地址上.因为我们靠Web服务器来区分域名,所以这个IP地址自然应当是Web服务器所管理的. RedHat6.0操作系统中捆绑有BIND DNS服务器.它

  • Linux下虚拟域名的实现(3)

    目前Linux操作系统十分火爆,所以很多朋友希望了解一下Linux下虚拟域名的实现过程.下面就基于目前比较流行的RedHat来讨论一下. 三.CGI程序的编制 要实现虚拟域名的在线申请,就必须编写相应CGI程序动态修改独立的配置文件(即上面的vhostdbm文件)和进行用户的管理(包括用户申请,登录,密码修改等等).在此只介绍对独立的配置文件的操作,其他属于如何用Perl语言来编写CGI程序,请参考有关资料. vhostdbm文件使用dbm格式来记录数据,与用普通文本文件相比可加快寻找速度,而且

  • Linux\Nginx 环境下虚拟域名配置及测试验证

    使用 Nginx 虚拟域名配置,可以不用去购买域名,就可以通过特定的域名访问本地服务器.减少发布前不必要的开支. 配置步骤 1. 编辑 nginx.conf 配置文件  sudo vim /usr/local/nginx/Nginx/conf/nginx.xonf (1) 添加域名到文件名(方便日后管理) 这里添加的一下代码是在 nginx.conf 的 http 结点下添加便可. 但是需要注意的 vhost 文件夹的路径,这里的创建的 vhost 文件夹的路径是: /usr/local/ngi

  • 网站控制台directadmin中文手册 Linux下虚拟主机管理

    如何登入网站控制台? . 特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系 ... Direct Admin 的控制台 . 例如申请了xxx.com, 控制台的路径便是 www.directadmin.cn 版权申明:本站文章均来自网络,本站所有转载文章言论不代表本站观点 特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系. ... 你可以用我们Email给你的登录帐号及密码去登

  • linux下挂载VHD等虚拟磁盘文件的方法

    1.RAW格式虚拟磁盘 linux下可以直接挂载raw格式的虚拟磁盘镜像文件. 例如,这里先用dd命令创建一个文件,然后将其格式化为ext4格式(只有一个分区),然后挂载到/mnt目录. 下面的raw.img磁盘镜像文件就一个分区,所以没有使用offset=来指定偏移.如果有多个分区,则可以通过指定偏移来挂载.具体的可以查阅mount命令的相关参数信息. > dd if=/dev/zero of=raw.img bs=1M count=512 记录了512+0 的读入 记录了512+0 的写出

  • Windows环境下如何配置wamp的虚拟域名

    修改服务域名,其主要就是修改关于apache的配置文件 1打开apache的mod_rewrite功能 LoadModule rewrite_module modules/mod_rewrite.so//删除前面的# 2引入http-vhosts文件 Include conf/extra/httpd-vhosts.conf//删除前面的# 3进入conf/extra文件夹找到http-hosts文件 NameVirtualHost*:80 //绑定80端口 listen 端口号//手动设置监听

  • Linux下Nginx安装教程

    Linux下Nginx安装教程分享,具体内容如下 1.安装编译文件及库文件 yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel 2.安装PCRE,Nginx的rewrite的伪静态匹配规则需要用到正则表达式,PCRE就是起到这个作用. 下载地址:wgethttp://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz 如果

  • 详解Linux下搭建VPN服务器(CentOS、pptp)

    本文介绍在安装CentOS操作系统的Xen VPS上,如何搭建PPTP VPN服务.包括PPTP的安装.配置,以及相应的iptables规则.本文暂时不涉及PPTP流量控制的部分,等抽空学明白了FreeRADIUS,再来写续篇.2011年7月20日更新:在安全建议这一部分,增加了使用不同的IP地址,分别提供VPN服务和Web等其他常规服务,以及使用不同IP地址时如何书写iptables规则的内容. 写在前面 在Godaddy一美元COM域名的怂恿下,这几天先是拿到了这个gnailuy.com,然

  • CentOS(Linux)下的apache服务器配置与管理方法分享

    一.WEB服务器与Apache 1.web服务器与网址 2.Apache的历史 3.补充 http://www.netcraft.com/可以查看apache服务器的市场占有率 同时必须注意的是ngnix,正处于强势增长的上升时期,大有和apache一争天下的感觉,真是后生可畏~~~ 二.Apache服务器的管理命令 1.命令启动:service httpd start/stop/restart/reload/condrestart/status/configtest/graceful/help

随机推荐