`
wl1985
  • 浏览: 40921 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

最新版apache2.2.4与resin最新版3.1.2整合(原创)

阅读更多
Resin with Apache
Resin为apache提供快速的servlet引擎,允许jsp及servlet在apache下运行,在apache应用虚拟主机来布署Resin更是妙上加妙。
那么apache如何集成Resin呢?
步骤,先从apache官方网站上去下载当前最新版本2.2.4: http://apache.mirror.phpchina.com/httpd/binaries/win32/apache_2.2.4-win32-x86-no_ssl.msi
然后安装,注意。安装时不用指定域名及,但管理员邮箱要指定。
启动apache看看服务是否正常启动,如果一切OK就进入下一步。
然后下载resin-3.1.2下载地址如下:
下载后,它是一个解压版,我是直接放在c盘根目录下,当然,要启动resin你必须装了JDK并且配了JAVA_HOME环境变量,默认resin是服务于8080端口,先测试运行resin是否好用,也可以把resin作为windows服务配置管理,只用在cmd命令行模式下,例如我的resin-3.1.2是在C盘根目录下,我进行cmd命令行模式如下图:
 
就可以把resin当作windows服务管理了.
安装完resin后,下面要与apache进行整合了。
点击resin-3.1.2目录下的setup.exe文件,弹出一个窗口
 
在上面的窗口中,把IIS/PwS复选给去掉,勾上Apache然后输入apache的主目录,我的是在c:\apache2.2.4
然后,点上图的apply就OK了
点上面步骤,resin会在apache/conf/目录下的httpd.conf文件中加上如下代码
LoadModule
caucho_module "C:/resin-3.1.2/win32/apache-2.2/mod_caucho.dll"
 ResinConfigServer localhost 6800
 CauchoStatus yes
表示apache调用resin的集群的中件间mod_caucho.dll
同时把jsp及servlet的除HTML的请求都发到6800端口
为了验证集群是否应用上,我们打开resin根目录下conf目录下的resin.conf文件发现
<!---->
定义了resin也是同样的指定6800端口
到此完成了集群配置
接着我们把resinapache启动起来
resin启动的图中可以看到如下图:
 
可以看到resin除了在监听8080口以外,还在监听6800口了,呵,最后一步进行测试了,
resin的目录C:\resin-3.1.2\webapps\ROOT\下建立test.jsp文件内容如下:
<!---->
2 + 2 = <!---->
然后在IE浏览器中打http://localhost/
显示apache的默认html页面
Index.html页面
然后再在IE浏览器中打http://localhost/test.jsp
可以看到apacheJSP的请求都转发给resin了,再把resin的请求结果页解析返回给用户。不信试试吧,很easy的!
如果resin要布署自己的应用目录也是一样的,只要在resinresin.conf文件中修改革派配置,换一下指定的指定的目录就行了,到此完成配置工作,如果要配虚拟主机的话,也是同样的在两个配置文件进行协作,稍后的文档中会讲到.尽请观注。
注意:三张图片见

上面只是配好apache与resin的整合,其它很多企业应用中还涉及到配置apache与resin的虚拟主机的配置,下面我们接着来说说如何利用apache与resin配置虚拟主机了,注意以下介绍的都是基于一个IP多个域名的虚拟主机的配法,我在我公司服务器测试过,步骤如下:
前提分支条件:
如果你有两个域名及一个外网的服务器的话,可以不用在本机的c:winnt目录下搜hosts文件,进入下面步骤。
如果没有域名及外网服务器,想先在本机resin+apache测试,可以先到系统windows目录下搜hosts文件,windows2000系统在C:\WINNT\system32\drivers\etc目录下,然后打开它,
在原有的基础上增加如下配置

以上配置是指定apache的虚拟主机,当apache向resin转发消息请求

xml 代码
  1. 127.0.0.1 www.testmyfather.com   
  2.  127.0.0.1 www.testmymother.com  


再进入下面步骤:
1回到apache,让我们先在apache配置虚拟主机吧,
进入apache的httpd.conf文件,找开它,找到Listen 80位置
在其下添加如下虚拟主机的配置
# 为虚拟主机在所有IP地址上监听

 

 


 

xml 代码

 

  1. NameVirtualHost *:80   
  2. <VirtualHost *:80>  
  3. DocumentRoot C:/Apache2.2/htdocs/bbs71   
  4. ServerPath /bbs   
  5. ServerName www.testmyfather.com   
  6. # 你可以在这里添加其他指令   
  7.   
  8. VirtualHost>  
  9. <VirtualHost *:80>  
  10. DocumentRoot C:/Apache2.2/htdocs/blnywebsite   
  11. ServerName www.testmymother.com   
  12. # 你可以在这里添加其他指令   
  13.   
  14. VirtualHost>   

 


 

 

为了让resin也能识别出是那个域名的客户端浏览器的请求

所以第二步在resin的配置文件resin.conf文件中配置如下:

在resin.conf中找到标记,在此标记中间大致是280多行添加新的主机

  1. <host id="www.testmyfather.com" root-directory=".">  
  2.   <host-alias>testmyfather.comhost-alias>  
  3. <web-app id="/bbs" root-directory="C:/Apache2.2/htdocs/bbs71">  
  4.       
  5.  web-app>  
  6. host>  
  7. <host id="www.testmymother.com" root-directory=".">  
  8.   <host-alias>testmymother.comhost-alias>  
  9. <web-app id="/" root-directory="C:/Apache2.2/htdocs/blnywebsite">  
  10. <servlet-mapping  url-pattern='/servlet/'   servlet-name='invoker'/>       
  11.  web-app>  
  12. host>  
xml 代码

以上配置完成了虚拟主机的应用。可以到测试一下,看看apache是不是根据不同的域名请求找不同的应用。

最后注意:域名的名称及应用服务的目录都要对应得上,另外对于servlet的应用的话,加最好加上/servlet/的多一层目录映射,否则apache转发后resin不会解析成servlet,在很多人配置整合会发现resin服务下WEB应用图片的路径问题,这是由于apache对于图片都自己给解析,就不把请求给RESIN了在自己的虚拟主机目录下找图片文件,只要你把apache配置的虚拟主机的主目录与resin应用的主目录在同一个路径下,就OK了!

分享到:
评论
9 楼 wl1985 2007-09-24  
prajack     3 天前
我怎么配不起来啊~


每一步都测试了么,是虚拟主机没有配置起来,还是整合没有配置起来呢,
8 楼 WinLive 2007-09-22  
呵呵,我一直用的都是这
不过是在LINUX环境下
7 楼 prajack 2007-09-21  
我怎么配不起来啊~
6 楼 wl1985 2007-09-04  
sgwood 写道
[quote]如果两个不在同一路径下就会出现图片问题,因为apache对图片格式会解析的不会等到resin去处理
而我低版本的配置却不存在的这样的问题,图片也找得到呀~~


图片路径的问题,可能在apache或resin上还有配置,容我细读文档再论
5 楼 sgwood 2007-09-01  
[quote]如果两个不在同一路径下就会出现图片问题,因为apache对图片格式会解析的不会等到resin去处理
而我低版本的配置却不存在的这样的问题,图片也找得到呀~~
4 楼 wl1985 2007-08-30  
引用
另外对于servlet的应用的话,加最好加上/servlet/的多一层目录映射,否则apache转发后resin不会解析成servlet,在很多人配置整合会发现resin服务下WEB应用图片的路径问题,这是由于apache对于图片都自己给解析,就不把请求给RESIN了在自己的虚拟主机目录下找图片文件,只要你把apache配置的虚拟主机的主目录与resin应用的主目录在同一个路径下,就OK了!


一定要在应用系统加上/servlet/那层吗?这样不造成开发出来的应用系统不具有一般性,难道没有这层的就不能用这种apache+resin的组合吗?还有存在图片路径的问题,若不在同一个路径就不行吗?
另外,我想请教“# 你可以在这里添加其他指令”具体指的是什么指令, 还有
<web-app id="/" root-directory="C:/Apache2.2/htdocs/blnywebsite">
<servlet-mapping url-pattern='/servlet/' servlet-name='invoker'/> //你的项目或例子为什么要用这个,我认为用了SSH框架后这个并不需要呀?
</web-app>
由于我现在用的是apache2.0.59+resin2不存在这样的问题,也因为有许多地方和新版本(resin3+apache2.2)不同,导致不能正确实现新版本配置集成虚拟主机,不能运行,真希望您能给我解释一番,谢先。

加/servlet/是为了让原有系统如果是用servlet开发的,就可以把它交给servlet引擎处理,
如果你用SSH开发完全不用加上面那个servlet配置,我不是配了两个虚拟主机的域名么?
如果两个不在同一路径下就会出现图片问题,因为apache对图片格式会解析的不会等到resin去处理,
3 楼 sgwood 2007-08-29  
引用
另外对于servlet的应用的话,加最好加上/servlet/的多一层目录映射,否则apache转发后resin不会解析成servlet,在很多人配置整合会发现resin服务下WEB应用图片的路径问题,这是由于apache对于图片都自己给解析,就不把请求给RESIN了在自己的虚拟主机目录下找图片文件,只要你把apache配置的虚拟主机的主目录与resin应用的主目录在同一个路径下,就OK了!

一定要在应用系统加上/servlet/那层吗?这样不造成开发出来的应用系统不具有一般性,难道没有这层的就不能用这种apache+resin的组合吗?还有存在图片路径的问题,若不在同一个路径就不行吗?
另外,我想请教“# 你可以在这里添加其他指令”具体指的是什么指令, 还有
<web-app id="/" root-directory="C:/Apache2.2/htdocs/blnywebsite">  
<servlet-mapping  url-pattern='/servlet/'   servlet-name='invoker'/>  //你的项目或例子为什么要用这个,我认为用了SSH框架后这个并不需要呀?     
</web-app>
由于我现在用的是apache2.0.59+resin2不存在这样的问题,也因为有许多地方和新版本(resin3+apache2.2)不同,导致不能正确实现新版本配置集成虚拟主机,不能运行,真希望您能给我解释一番,谢先。
2 楼 wl1985 2007-08-16  
为什么我一发贴就扣分,汗,再扣都没有权限登录了,版主大人,行行好吧
1 楼 wl1985 2007-08-16  
又扣了10分

相关推荐

Global site tag (gtag.js) - Google Analytics