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 www.lxbing.com
192.168.0.136 ww.example.com
192.168.0.136 www.doc.com
2. 清除tomcat下/webapps目录中的全部应用,关闭tomcat,把opencms.war包改为ROOT.war,拷入 /webapps目录,因为tomcat默认的应用是ROOT,这样就去除了路径中的第一个opencms。启动tomcat,按步骤安装opencms。可以通过http://www.lxbing.com:8080/setup 也可以用http://Ip:8080/setup
进行安装。
3. 安装完毕后你可以通过http://Ip:8080/opencms/system/login进入opencms的工作区,可以看到还有一个/opencms存在于路径中。
找到 ${TOMCAT_HOME}/webapps/ROOT/WEB-INF/config/opencms-importexport.xml文件,编辑节点 staticexport/rendersettings 中的部分内容,去除上下文环境,因为现在opencms已经作为tomcat的默认应用了,说以它的默认上下文环境就是根目录,编辑后的节点中的相关内容为:
<rfs-prefix>/export</rfs-prefix>
<vfs-prefix>${SERVLET_NAME}</vfs-prefix>
<userelativelinks>false</userelativelinks>
<exporturl>http://127.0.0.1:8081${SERVLET_NAME}/handle404</exporturl>
4. 修改${TOMCAT_HOME}/webapps/ROOT/WEB-INF/config/opencms-system.xml 文件,配置opencms中的多个站点,在节点system/sites 中设置需要配置的站点(所谓站点就是opencms中的microsite文件类型),由于测试用的opencms是新安装的,所以我以oepncms中的/default/,/demopages/,/alkacon-documentation/ 为例,具体配置如下:
<sites>
<workplace-server>http://www.lxbing.com</workplace-server>
<default-uri>/sites/default/</default-uri>
<site server="http://www.lxbing.com" uri="/sites/default/"/>
<site server="http://www.example.com"
uri="/sites/default/demopages/"/>
<site server="http://www.doc.com"
uri="/sites/default/alkacon-documentation/"/>
</sites>
注意:在这种配置中,所以站点的 uri 都必须在 /site/default/目录下,否则,会报错,我没尝试过能否把/site/default/ 该为根目录/ 或是其他意义的目录,如何有人作过这方面的配置测试,希望能拿出来让大家学习! 每个站点的域名必须是在你的域名服务中定义过的,否则,会报错。
5. 配置 ${TOMCAT_HOME}/conf/ 中的server.xml 文件.
<Server port="8005" shutdown="SHUTDOWN" debug="0">
<Service name="Tomcat-Standalone">
<!-- Define a connector for the "public visible" server name-->
<Connector port="8081" minProcessors="5" maxProcessors="75"
proxyName="www.lxbing.com" proxyPort="80" enableLookups="true"
redirectPort="8443" acceptCount="100" debug="0"
connectionTimeout="20000" useURIValidationHack="false"
disableUploadTimeout="true" />
<Connector port="8082" maxThreads="150" minSpareThreads="25"
maxSpareThreads="75" enableLookups="false" redirectPort="8443"
acceptCount="100" proxyName="www.example.com" proxyPort="80"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" />
<Connector port="8088" maxThreads="150" minSpareThreads="25"
maxSpareThreads="75" enableLookups="false" redirectPort="8443"
acceptCount="100" proxyName="www.doc.com" proxyPort="80"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" />
<Engine name="Standalone" defaultHost="localhost" debug="0">
<Host name="localhost" debug="0" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<!-- You can change "unpackWARs" and "autoDeploy" to false
after the installation is finished -->
<Logger className="org.apache.catalina.logger.FileLogger"
directory="logs" prefix="localhost_log."
suffix=".txt" timestamp="true"/>
</Host>
</Engine>
</Service>
</Server>
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 中的虚拟主机<VirtualHost> ,apache监听80端口,当
NameVirtualHost *:80
<VirtualHost *:80>
<Directory "/var/lib/tomcat-5.5/webapps/ROOT/">
Order allow,deny Allow from all
</Directory>
ServerName www.example.com
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://www.example.com/
RedirectPermanent /opencms/ http://www.example.com/
ProxyPass /resources/ http://localhost:8082/resources/
ProxyPass /export/ http://localhost:8082/export/
ProxyPass / http://localhost:8082/opencms/
ProxyPassReverse / http://localhost:8082/opencms/ </VirtualHost>
<VirtualHost *:80>
<Directory "/var/lib/tomcat-5.5/webapps/ROOT/">
Order allow,deny Allow from all
</Directory>
ServerName www.lxbing.com
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://www.lxbing.com/
RedirectPermanent /opencms/ http://www.lxbing.com/
ProxyPass /resources/ http://localhost:8081/resources/ ProxyPass /export/ http://localhost:8081/export/
ProxyPass / http://localhost:8081/opencms/
ProxyPassReverse / http://localhost:8081/opencms/ </VirtualHost>
<VirtualHost *:80>
<Directory "/var/lib/tomcat-5.5/webapps/ROOT/">
Order allow,deny Allow from all
</Directory>
ServerName www.doc.com
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://www.doc.com/
ProxyPass /resources/ http://localhost:8088/resources/
ProxyPass /export/ http://localhost:8088/export/
ProxyPass / http://localhost:8088/opencms/
ProxyPassReverse / http://localhost:8088/opencms/ </VirtualHost>
在这个配置中,www.lxbing.com 代理的是 http://localhost:8081/opencms/,这个页面有一个链接到opencms登录页面的链接,如果按照官方文档中的说明配置为:
ProxyPass /opencms/ !
RedirectPermanent /opencms/ http://${DOMAIN_NAME}/
将无法登录opencms工作区,真确的配置为:
ProxyPass /opencms/ http://${DOMAIN_NAME}/
RedirectPermanent /opencms/ http://${DOMAIN_NAME}/
在配置虚拟主机时应注意 ServerName,DocumentRoot,以及 /resources/, /export/,现在配置完成,可以通过域名访问opencms中的站点了,但是apache和tomcat是怎么分别管理静态,动态资源的,我还不大明白,是不是我的配置中有什么不妥的地方,请大家多多指教!
分享到:
相关推荐
OpenCMS内容管理入门指南.pdf,另一个包是章节配套源代码
opencms中文用户手册!看了以后受益匪浅!希望大家多多学习
OpenCms中文用户手册.pdf
app、src、api 完全免费下载,可惜全是英文版的,让 N 多国内程序员无法开发其强大功能。 胡楠先生写的这本《OpenCms 中文用户手册》,为中国程序员打开了一扇认识、使用 OpenCms 的大门。入门之后,再去阅读更深 ...
opencms中文教程 手册 指南 汉化
[CMS程序]OpenCms中文用户手册_opencmshandbook
opencms中文汉化包,7.0.1,值得下载
opencms guide
opencms中文手册简单介绍opencms功能以及工作区
opencms中文教程 手册 指南 汉化 part2
最新版的opencms 中文安装手册,详细介绍如何使用opencms. 1:安装条件 2:安装opencms 配置数据库
干货,opencms应用中去掉路径中两个/opencms。利用urlrewritefilter,网上方法走不通,自己琢磨得出,完美去除。官方文档中方法会带来一些问题。 学习过程中使用了很多积分,各位不缺的话,支援下。实在没有积分又很...
OpenCms是一个专业级、开源Java CMS(内容管理系统),由Alkacon公司发起和维护,OpenCms完全基于Java和XML技术实现,内容维护方便、直观,类型定义简单、快速,基于Jsp的模板机制强大、灵活,OpenCms扩展机制可以很好...
NULL 博文链接:https://daichangfu.iteye.com/blog/1391964
主要讲述在opencms下apache和tomcat配置,去掉两个opencms
OpenCms可以非常好的运行在一个完全的开源环境中(例如:Linux、Apache、Tomcat、MySQL). 当然,也可以很好的运行于商业环境下(例如:Windows NT、IIS、BEA Weblogic、Oracle DB)。 功能特色: OpenCms是真正...
OpenCms可以非常好的运行在一个完全的开源环境中(例如:Linux、Apache、Tomcat、MySQL). 当然,也可以很好的运行于商业环境下(例如:Windows NT、IIS、BEA Weblogic、Oracle DB)。 功能特色: OpenCms是真正...
opencms 中文网提供的java api 文档包
非常好用的文档,纯中文,如过你要快速建站这个首选.