Chinaunix首页 | 论坛 | 博客
  • 博客访问: 335766
  • 博文数量: 30
  • 博客积分: 3021
  • 博客等级: 少校
  • 技术积分: 409
  • 用 户 组: 普通用户
  • 注册时间: 2006-12-01 11:32
文章分类

全部博文(30)

文章存档

2022年(1)

2015年(2)

2014年(1)

2013年(1)

2012年(2)

2011年(2)

2010年(3)

2009年(10)

2008年(8)

分类: Java

2009-06-03 15:47:27

opencms官方文档中有一篇关于整合opencms,Apache,tomcat管理多站点的文章--“Integrating OpenCms, Tomcat and the Apache webserver with mod_proxy”,这些天按照文档说明自己动手配置了一下,现在把心得体会写出来,以供opencms的研究者,使用者参考,批评指正。
  
官方文档的主旨是:运用Apache的Mod_proxy实现opencms的动态静态资源分离,由apache直接存储静态资源,tomcat处理请求中的动态资源,并去除前缀/opencm/opencms,我的配置测试环境是:
 tool  version
 gentoo linux
 2.6
 apache  2.0
 tomcat  5.5
 mysql  4.1
 opencms  6.2

在作任何文件的配置修改之前,请最好作个备份!配置步骤如下:
1. 在你的域名服务中设置你的域名,稍后安装及配置过程中将会用到。我的域名是在/etc/hosts 文件中设置的:


127.0.0.1 localhost localhost.localdomain

192.168.0.136 

192.168.0.136  ww.example.com

192.168.0.136 



2. 清除tomcat下/webapps目录中的全部应用,关闭tomcat,把opencms.war包改为ROOT.war,拷入     /webapps目录,因为tomcat默认的应用是ROOT,这样就去除了路径中的第一个opencms。启动tomcat,按步骤安装 opencms。可以通过http://:8080/setup 也可以用
进行安装。

3. 安装完毕后你可以通过进入opencms的工作区,可以看到还有一个/opencms存在于路径中。
找到 ${TOMCAT_HOME}/webapps/ROOT/WEB-INF/config/opencms-importexport.xml文件,编辑节点 staticexport/rendersettings 中的部分内容,去除上下文环境,因为现在opencms已经作为tomcat的默认应用了,所以它的默认上下文环境就是根目录,编辑后的节点中的相关内容为:

/export

${SERVLET_NAME}

false

{SERVLET_NAME}/handle404


4. 修改${TOMCAT_HOME}/webapps/ROOT/WEB-INF/config/opencms-system.xml 文件,配置opencms中的多个站点,在节点system/sites 中设置需要配置的站点(所谓站点就是opencms中的microsite文件类型),由于测试用的opencms是新安装的,所以我以oepncms中 的/default/,/demopages/,/alkacon-documentation/ 为例,具体配置如下:


  http://   

  /sites/default/

  http://" uri="/sites/default/"/>

  "

             uri="/sites/default/demopages/"/>

  http://"

              uri="/sites/default/alkacon-documentation/"/>


注意:在这种配置中,所以站点的 uri 都必须在 /site/default/目录下,否则,会报错,我没尝试过能否把/site/default/ 该为根目录/ 或是其他意义的目录,如何有人作过这方面的配置测试,希望能拿出来让大家学习! 每个站点的域名必须是在你的域名服务中定义过的,否则,会报错。

5. 配置 ${TOMCAT_HOME}/conf/ 中的server.xml 文件.
 


  

    

   "8081" minProcessors="5" maxProcessors="75"  

     proxyName="" proxyPort="80" enableLookups="true"

     redirectPort="8443" acceptCount="100" debug="0"

     connectionTimeout="20000" useURIValidationHack="false"

     disableUploadTimeout="true" />

   port="8082" maxThreads="150" minSpareThreads="25"

     maxSpareThreads="75" enableLookups="false" redirectPort="8443"

     acceptCount="100" proxyName="" proxyPort="80"

     debug="0" connectionTimeout="20000"

     disableUploadTimeout="true"  />

   "8088" maxThreads="150" minSpareThreads="25"

     maxSpareThreads="75" enableLookups="false" redirectPort="8443"

     acceptCount="100" proxyName="" proxyPort="80"

     debug="0" connectionTimeout="20000"

     disableUploadTimeout="true" />

      

       

              unpackWARs="true" autoDeploy="true">

        

        

              directory="logs" prefix="localhost_log." 

            suffix=".txt" timestamp="true"/>

       

    

  


6. 配置 /etc/Apaches2/中的 httpd.conf文件,使用能支持mod_proxy模块

LoadModule alias_module modules/mod_alias.so LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so


7. 配置apache 中的虚拟主机 ,apache监听80端口,当

NameVirtualHost *:80


   
        Order allow,deny Allow from all
   

    ServerName
    ServerAdmin webmaster@alkacon.com
    DocumentRoot "/var/lib/tomcat-5.5/webapps/ROOT/"
    ErrorLog logs/error.log
    # Log only non-redirect requests in "normal" log file
    SetEnvIf Request_URI "\/opencms\/*" redirect
    CustomLog logs/localhost-access.log common env=!redirect    

    ProxyPass           /opencms/     /
    RedirectPermanent  /opencms/     /

    ProxyPass         /resources/  8082/resources/
    ProxyPass        /export/      8082/export/

    ProxyPass              /       8082/opencms/
    ProxyPassReverse      /        8082/opencms/



   
         Order allow,deny Allow from all
   

    ServerName
    ServerAdmin webmaster@alkacon.com
    DocumentRoot "/var/lib/tomcat-5.5/webapps/ROOT/"  
    ErrorLog logs/error.log
    # Log only non-redirect requests in "normal" log file
    SetEnvIf Request_URI "\/opencms\/*" redirect
    CustomLog logs/localhost-access.log common env=!redirect    

    ProxyPass          /opencms/     http:///
    RedirectPermanent  /opencms/     http:///

    ProxyPass       /resources/  8081/resources/       ProxyPass        /export/    8081/export/

    ProxyPass          /          8081/opencms/
    ProxyPassReverse  /           8081/opencms/


      
        Order allow,deny Allow from all
   

    ServerName
    ServerAdmin webmaster@alkacon.com
    DocumentRoot "/var/lib/tomcat-5.5/webapps/ROOT/"
    ErrorLog logs/error.log
    # Log only non-redirect requests in "normal" log file
    SetEnvIf Request_URI "\/opencms\/*" redirect
    CustomLog logs/localhost-access.log common env=!redirect

    ProxyPass          /opencms/ !
    RedirectPermanent  /opencms/ http:///

    ProxyPass      /resources/   8088/resources/
    ProxyPass      /export/      8088/export/

    ProxyPass            /       8088/opencms/
    ProxyPassReverse    /        8088/opencms/


在这个配置中, 代理的是 8081/opencms/,这个页面有一个链接到opencms登录页面的链接,如果按照官方文档中的说明配置为:

ProxyPass          /opencms/ !

RedirectPermanent /opencms/  {DOMAIN_NAME}/


将无法登录opencms工作区,真确的配置为:

ProxyPass          /opencms/ {DOMAIN_NAME}/

RedirectPermanent  /opencms/ {DOMAIN_NAME}/


在配置虚拟主机时应注意 ServerName,DocumentRoot,以及 /resources/, /export/,现在配置完成,可以通过域名访问opencms中的站点了,但是apache和tomcat是怎么分别管理静态,动态资源的,我还不大明白,是不是我的配置中有什么不妥的地方,请大家多多指教!
阅读(1957) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~