Ubuntu下apache+tomcat集成实战新解
对于apache web服务器来说,大家肯定不会陌生,作为最主流的http server之一,凭借其强大的性能,灵活的配置,丰富的功能库,得到用户的一致亲睐。可以说,世界上大部分cms网站都是由php程序构建的,而php网站基本上是运行在apache服务器之上的。
而对于tomcat这个词,可能知道的人并不是很多。它也是类似apache的一个web服务器,不同的是,它主要是提供对jsp和servlet的运行支持,专业一点来说,它是一个jsp/servlet的容器,当然,它也是能够支持静态html文件的,只不过,Tomcat处理静态HTML的能力不如Apache服务器好。
如果在一台服务器中,只有一个网站,该网站就是jsp/servlet实现的,通过设置tomcat中的server.xml,可以简单将默认的8080端口改掉,让其不带这个“丑陋”的端口号,影响url的美观。但是在现实情况中,就不一定是这样了,可能你有多个网站,有些是php的,有些是jsp/servlet的,如何让他们友好的并存,让php网站正常运行,也能让jsp/servlet的网站不再带有那8080的端口号?答案是肯定的,有这样的解决方案,可以通过apache的jk组件实现该功能。
jk是什么?其实它是一个连接器(Connector),就像一个数据库连接器一样,例如对于mysql,有各种不同的连接器,有连接java的Connector等。而jk就可以针对不同的web服务器,将tomcat集成到apache或者IIS等web服务器中去,使得他们能协同工作,将jsp/servlet的请求进行转发,交由tomcat进行处理。
关于apache+tomcat集成的相关解决办法,网上搜索能找到一大堆方案,当然,按照有些办法去做不一定能满足每个人的需要,本人经过研究,得出了自己的一些体会和解决方案。在这里,我着重讲解一下,基于linux操作系统中的Ubuntu 11.04,如何进行apache和tomcat的集成,并结合apache的配置做一下配置的实战讲解。
1,确保你的apache和tomcat都已经安装好。在Ubunt服务器下,这个很简单,采用apt-get install apache2 tomcat6就可以安装配置好了。
2,安装mod-jk模块并配置。先搜索到mod-jk组件:
然后,通过命令apt-get install libapache2-mod-jk进行安装。安装完后,需要修改文件/etc/libapache2-mod-jk/workers.properties,将以下两个目录修改为实际目录:
workers.tomcat_home=/etc/apache-tomcat-6.0.33
workers.java_home=/etc/jdk1.6.0_29
确保jk.load文件/etc/apache2/mods-enabled/jk.load的存在。
然后,在apache2.conf文件中,加入下面命令:
JkWorkersFile /etc/libapache2-mod-jk/workers.properties
3,配置apache。jk模块已经配置好了,接下来就是配置具体的网站了。在/etc/apache2/sites-available目录下的default文件中,这样设置你的网站:
关键是里面的这几行:
JkMount /seo/*.jsp ajp13_worker
JkMount /seo/*.action ajp13_worker
JkMount /seo/*.* ajp13_worker
这里的seo模块路径是需要在tomcat里存在的,这样的话,seotcs.com根目录下是php类型的网站,而其seo目录下的网站文件就交由tomcat去进行处理了,方便吧,不是很难理解哦。
以上是我结合网上搜索并实战得出的结论,希望对大家有所帮助。
分享按钮
而对于tomcat这个词,可能知道的人并不是很多。它也是类似apache的一个web服务器,不同的是,它主要是提供对jsp和servlet的运行支持,专业一点来说,它是一个jsp/servlet的容器,当然,它也是能够支持静态html文件的,只不过,Tomcat处理静态HTML的能力不如Apache服务器好。
如果在一台服务器中,只有一个网站,该网站就是jsp/servlet实现的,通过设置tomcat中的server.xml,可以简单将默认的8080端口改掉,让其不带这个“丑陋”的端口号,影响url的美观。但是在现实情况中,就不一定是这样了,可能你有多个网站,有些是php的,有些是jsp/servlet的,如何让他们友好的并存,让php网站正常运行,也能让jsp/servlet的网站不再带有那8080的端口号?答案是肯定的,有这样的解决方案,可以通过apache的jk组件实现该功能。
jk是什么?其实它是一个连接器(Connector),就像一个数据库连接器一样,例如对于mysql,有各种不同的连接器,有连接java的Connector等。而jk就可以针对不同的web服务器,将tomcat集成到apache或者IIS等web服务器中去,使得他们能协同工作,将jsp/servlet的请求进行转发,交由tomcat进行处理。
关于apache+tomcat集成的相关解决办法,网上搜索能找到一大堆方案,当然,按照有些办法去做不一定能满足每个人的需要,本人经过研究,得出了自己的一些体会和解决方案。在这里,我着重讲解一下,基于linux操作系统中的Ubuntu 11.04,如何进行apache和tomcat的集成,并结合apache的配置做一下配置的实战讲解。
1,确保你的apache和tomcat都已经安装好。在Ubunt服务器下,这个很简单,采用apt-get install apache2 tomcat6就可以安装配置好了。
2,安装mod-jk模块并配置。先搜索到mod-jk组件:
然后,通过命令apt-get install libapache2-mod-jk进行安装。安装完后,需要修改文件/etc/libapache2-mod-jk/workers.properties,将以下两个目录修改为实际目录:
workers.tomcat_home=/etc/apache-tomcat-6.0.33
workers.java_home=/etc/jdk1.6.0_29
确保jk.load文件/etc/apache2/mods-enabled/jk.load的存在。
然后,在apache2.conf文件中,加入下面命令:
JkWorkersFile /etc/libapache2-mod-jk/workers.properties
3,配置apache。jk模块已经配置好了,接下来就是配置具体的网站了。在/etc/apache2/sites-available目录下的default文件中,这样设置你的网站:
关键是里面的这几行:
JkMount /seo/*.jsp ajp13_worker
JkMount /seo/*.action ajp13_worker
JkMount /seo/*.* ajp13_worker
这里的seo模块路径是需要在tomcat里存在的,这样的话,seotcs.com根目录下是php类型的网站,而其seo目录下的网站文件就交由tomcat去进行处理了,方便吧,不是很难理解哦。
以上是我结合网上搜索并实战得出的结论,希望对大家有所帮助。