`
ferreousbox
  • 浏览: 287525 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Linux下apache和resin的虚拟主机配置(基于域名)

阅读更多

    这几天部署系统,对linux下的apache和resin的虚拟主机配置也稍与心得,与大家分享一下。我们都知道apache有两种虚拟主机的配置方式,一种是基于IP的多IP配置,一中是基于主机名的单IP配置。前段时间我也发了一篇关于多IP的虚拟主机配置文章,大家有兴趣的可以看一看。我今天说的是如何用一个IP来配置多域名的虚拟主机配置。

    版本说明:我使用的是apache2.0以上版本,resin是3.0.18以上版本;还是先做几个假设哈,比如我们有一个IP地址是:192.168.1.112,然后我们需要在该机器上配置两个应用,域名分别是:www.web1.cnwww.web2.cn这两个。另外再假设你已经做好了apache和resin的整合工作,apache的安装目录是:/usr/local/apache,resin的安装目录是:/usr/local/resin。好了,下面就开始配置咯~~~

    其实是很简单的,首先修改apache的配置文件,命令和配置如下:
#cd /usr/local/apache/conf
#vi httpd.conf

    找到### Section 3: Virtual Hosts这个位置,如果没有也没关系,就自己加吧。在这个地方加上如下的配置信息:

#注意这一行配置一定要,没有它就不是基于名称的虚拟主机配置了
NameVirtualHost *:80
<VirtualHost *:80>
    ServerAdmin mbq@qtone.cn
    DocumentRoot /data/web/web1
    ServerName www.web1.cn
    CustomLog logs/web1-access_log common
</VirtualHost>
<VirtualHost *:80>
    ServerAdmin mbq@qtone.cn
    DocumentRoot /data/web/web2
    ServerName www.web2.cn
    CustomLog logs/web2-access_log common
</VirtualHost>

    这里就是配置两个虚拟主机的配置,其中NameVirtualHost 这一行是必须要的,它后面用*标识本机的任何IP地址,如果你想使用特定的IP,就改成你需要的IP地址,但是必须保证你的IP必须是本机的某一个网络接口。我们这里使用*来配置,即可以适应本机的任何IP,这样即使机器的IP地址变了我们的配置是不需要变的,这也是好处之一哦,呵呵~~~

    然后下面的VirtualHost段就是配置单个虚拟主机的配置了,注意<VirtualHost *:80>这里也是使用的*,要保证这里的*和NameVirtualHost 后的配置一样哦,否则启动或停止apache的时候会出现警告的:-)。每一个VirtualHost最重要和必须要的就是DocumentRoot和ServerName两个配置了,前者是来配置你这个虚拟主机的根目录的,后一个就是你这个虚拟主机的访问域名了,我们这里使用的是www.web1.cnwww.web2.cn这两个域名。保存配置文件,然后重新启动apache。

    我们配置完了apache,就开始resin的配置了,如下:
#cd /usr/local/resin/conf
#vi resin.conf

    找到<host id="" root-directory=".">这一行,这是resin的默认主机配置,我们在这个host段的后面(注意是host段哦,不是host里面)加上如下的配置:

<host id="www.web1.cn" root-directory=".">
    <web-app id="/" document-directory="/data/web/web1" />
</host>
<host id="www.web2.cn" root-directory=".">
    <web-app id="/" document-directory="/data/web/web2" />
</host>

    注意这里我们加了两个host段,表示配置两个主机地址。注意这里的host中的id就是我们在apache中配置的那两个域名,然后这里的document-directory也分别对应apache中的DocumentRoot的路径配置。然后保存修改,重新启动resin就可以了。

    为了保证我们能够使用域名访问这两个系统,我们得配置windows下的hosts文件(假域名嘛,呵,要不就访问不到咯)。在C盘中搜索hosts这个文件(注意打开搜索的高级选项,将搜索系统文件和隐藏文件都勾上,否则可是搜索不到的呢~)。找到后,然后打开这个文件,在最后加入如下几行:

192.168.1.112    www.web1.cn
192.168.1.112    www.web2.cn

然后保存hosts文件,这里的IP就是我们服务器的IP地址。然后就可以通过www.web1.cn访问我们的/data/web/web1系统了,通过www.web2.cn访问我们的/data/web/web2系统了。这样也就完成了我们的单IP多域名的虚拟主机配置了。这里还要说一点的就是,如果你直接输入IP地址,那么就是默认访问第一个系统,即www.web1.cn对应的系统了,因为apache找不到与这个IP地址中稍带的主机名匹配的虚拟主机,所以就默认访问第一个虚拟主机了,所以利用这一点我们可以设置默认的虚拟主机:-)

    好了,apache和resin的虚拟主机也配置完毕了,下面说说它实现的流程和简单的原理吧,呵呵,说的不好可不要仍鸡蛋啊~ 大笑 

    我们在使用www.web1.cn访问系统时,apache会检查request headers中的Host字段,然后根据这个Host去查找与它匹配的虚拟主机,比如我们使用www.web1.cn访问的时候,请求的headers中的host字段就是www.web1.cn,这样apche获取这个后就会查找ServerName为www.web1.cn的虚拟主机,我们这里找到的就是/data/web/web1这个系统了,如果apache查找不到对应的虚拟主机,则会直接访问第一个配置的虚拟主机,比如我们用IP访问的时候就可以看到效果(比如调换连个VirtualHost的位置)。resin嘛其实也是一样的咯,同样会检测主机名来区分不同的访问请求。

   其实这里不用apahe而直接使用resin也可以达到这样的效果,比如你访问http://www.web1.cn:8080就可以绕过apache直接访问resin了,同样也是可以达到多虚拟主机的访问控制的。使用apache的好处就是apache作为一个成熟的webServer产品,可以提供很好的对静态文件的支持,这点要比tomcat和resin强,但是在动态如jsp和servlet方面就需要专门的servlet引擎来处理,所以也就是为什么现在大家都很流行使用apache结合tomcat或resin来实现服务器的配置了。

PS一下:apache和tomcat都是同一个组织开发的开源产品,目前其提供一个插件(名称不是很记得了)可以将apache和tomcat进行无缝连接。不过试过,呵呵,有兴趣的朋友不妨试一试~

分享到:
评论
2 楼 ferreousbox 2007-12-24  
单resin的情况按照上面的一样配置即可,把有apahce的部分去掉就好了
1 楼 maowoer 2007-12-14  
单resin的情况下,如何实现呢?

相关推荐

    apache+resin配置[定义].pdf

    - **添加虚拟主机**:修改`C:\Resin3.0\conf\resin.conf`文件,在文件末尾添加相应的虚拟主机配置。 示例配置: ```xml 域名1" root-directory="."&gt; 域名2" root-directory="."&gt; ``` **配置Apache**: - **...

    用Linux搭建全自动的虚拟主机(上).pdf

    首先,对于二级域名的设置,可以借助DNS系统中的CNAME记录,再在Apache服务器的配置文件中创建基于名称的虚拟主机。这样,每个用户都可以拥有独立的域名和管理权限。为了支持PHP和JSP,我们需要在Apache中安装相应的...

    linux下的整合apache+mysql+php+resin

    - 对于使用Resin的情况, 需要在Resin的配置文件中定义相应的虚拟主机, 并确保与Apache的配置一致。 #### 五、总结 通过上述步骤, 我们可以在Red Hat AS4上成功整合Apache、MySQL、PHP 和 Resin, 构建一个稳定、高效...

    Linux系统下JSP服务器配置步骤详解

    在Linux系统下配置JSP服务器是一项复杂但至关重要的任务,涉及到多个步骤,包括JDK的安装、Apache服务器的配置、Resin服务器的安装以及环境变量的设置等。本文将详细阐述这一过程,帮助读者理解并顺利完成JSP服务器...

    用Linux搭建全自动的虚假主机(下).pdf

    在本篇技术文章中,我们将继续探讨如何使用Linux操作系统来构建一个全自动的虚假主机环境,主要涉及磁盘限额配置、Apache服务器的安全配置、PHP的安全设置、Zend Optimizer的安装以及Resin服务器的安装与配置。...

    Linux运维从入门到高级全套案例v3.rar

    5.1.2 nginx虚拟主机配置 5.1.3 nginx性能优化 5.1.4 nginx参数深入理解 5.1.5 Nginx Rewrite规则 面面面面 5.2构建 Rsync同步服务器 5.2.1 Rsync服务端配置………… 5.2.2Rsyc基于SsH同步 5.2.3 Rsync实时同步配置 ...

    RedHat Linux 网络服务器构架实务(三).pdf

    - 编辑Apache的配置文件(`/usr/local/apache/conf/httpd.conf`),指定虚拟主机的IP地址和管理员邮箱。 这些步骤详细说明了如何在Red Hat Linux环境下搭建和优化网络服务器,涵盖了从基本服务安装、服务器配置到...

    Linux系统配置jsp服务器扫描.pdf

    - 编辑Apache的配置文件`/usr/local/apache/conf/httpd.conf`,添加NameVirtualHost和VirtualHost指令来创建虚拟主机。 - 指定ServerName,DocumentRoot,ErrorLog和CustomLog的位置。 - 重启Apache服务,以应用...

    Linux系统配置jsp服务器参考.pdf

    - 编辑Apache的配置文件 `/usr/local/apache/conf/httpd.conf`,添加虚拟主机配置,指定服务器管理员、站点根目录、错误日志和访问日志的位置。 - 为了支持JSP,还需要在Apache配置中集成Resin,这通常涉及到修改...

    Linux系统配置jsp服务器[文].pdf

    最后,配置Apache以支持JSP和虚拟主机: 1. 创建站点根目录。 2. 编辑Apache的配置文件`httpd.conf`,添加NameVirtualHost和VirtualHost指令,指定域名和文档根目录。 3. 重启Apache以应用新的配置。 一旦完成这些...

    强烈推荐 Linux运维从入门到高级全套案例教程

    - **5.1.2 Nginx虚拟主机配置**:配置多个独立的网站在同一台服务器上。 - **5.1.3 Nginx性能优化**:提高Nginx的处理能力。 - **5.1.4 Nginx参数深入理解**:详细了解Nginx配置参数的作用。 - **5.1.5 Nginx ...

    RedHat Linux网络服务器构架培训教程.doc

    - **步骤**: 安装Resin、配置JVM参数、设置虚拟主机等。 6. **PHP配置** - **目标**: 支持PHP脚本的执行。 - **工具**: PHP。 - **步骤**: 安装PHP、配置PHP模块、集成到Apache等。 #### 五、注意事项 - **安全...

    Linux运维从入门到高级全套案例v3

    - **构建Nginx WEB服务器**:包括Nginx的安装、虚拟主机配置、性能优化及Rewrite规则。 - **构建Rsync同步服务器**:设置Rsync服务进行文件同步,包括SSH加密和实时同步。 - **Tomcat/Resin JAVA服务器**:安装...

    小白入门linux入门到高级全套案例

    - 虚拟主机配置: 实现一个服务器托管多个不同域名网站的技术。 - 性能优化: 包括参数调整、缓存策略等。 - Rewrite规则: 使用重写规则实现URL重定向等功能。 - **Rsync同步服务器**: - 基于SSH的同步: 使用SSH...

    RedHatLinux网络服务器构架培训教程.docx

    - Resin虚拟主机配置。 - 中文支持和优化。 #### 四、文档特色与使用指南 - **文档特色**: - **针对性强**: 专门针对Red Hat Linux下的服务器构架。 - **实用性高**: 旨在为初学者提供配置向导,同时作为中高级...

    Redhat Linux服务器配置实务.doc

    Redhat Linux 服务器配置实务涉及一系列的步骤,涵盖了操作系统安装、桌面环境设置、网络服务配置、数据库和Web服务器的安装以及应用的安装与调试。以下是这些步骤的详细说明: 1. **RedHat 7.2 安装**: - 分区...

    运维142问不看一定后悔

    37. **nginx虚拟主机**:通过配置不同的server块,服务于多个域名。 38. **健康检查**:通过HTTP返回码、响应时间等指标判断后端服务状态。 39. **apache Worker与Prefork**:Worker采用多线程模型,Prefork为多...

Global site tag (gtag.js) - Google Analytics