Home

zhangyiqun

Thoughts, stories and ideas.

Notes Blog Archives About
08 Feb 2009

apache与tomcat整合

 

1、除特别说明外,本博客内容皆为原创,可以自由转载传播,但请署名及注明出处,不尊重别人劳动成果的不欢迎;

2、本博客内容遵守“署名-非商业性使用-禁止演绎 2.5 中国大陆”协议;

Jakarta Tomcat

Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持。由于Tomcat本身也内含了一个HTTP服务器,它也可以被视作一个单独的Web服务器。

名称由来

Tomcat最初是由Sun的软件构架师詹姆斯·邓肯·戴维森开发的。后来他帮助将其变为开源项目,并由Sun贡献给Apache软件基金会。由于大部分开源项目O’Reilly都会出一本相关的书,并且将其封面设计成某个动物的素描,因此他希望将此项目以一个动物的名字命名。因为他希望这种动物能够自己照顾自己,最终,他将其命名为Tomcat(英语公猫或其他雄性猫科动物)。而O’Reilly出版的介绍Tomcat的书籍(ISBN 0-596-00318-8)[1]的封面也被设计成了一个公豹的形象。而Tomcat的Logo兼吉祥物也被设计成了一只公猫。

环境

Tomcat提供了一个Jasper编译器用以将JSP编译成对应的Servlet。 Tomcat的Servlet引擎通常与Apache或者其他Web服务器一起工作。除了用于开发过程中的调试以及那些对速度和事物处理只有很小要求的用户,很少会将Tomcat单独作为Web服务器。但随着版本的更新,正有越来越多的用户将其单独作为Web服务器用以那些对速度和可靠性有较高要求的环境中。 由于Tomcat是使用Java开发的,所以它可以运行在任何一个装有JVM的不同操作系统之上。

开发状况

和其他Apache软件基金会旗下的项目一样,Tomcat是由该基金会的会员和其他志愿者开发与维护的,并且是一个被置于Apache协议之下的开源软件。用户可以根据该协议免费获得其源代码及可执行文件。最初被发布出来的版本是Tomcat 3.0.x,当前的最新稳定版本是5.5.x。

产品特性

Tomcat 3.x

  • 符合Servlet 2.2 和 JSP 1.1规范

  • Servlet更新

  • 基础的HTTP功能

Tomcat 4.x

  • 符合Servlet 2.3 和 JSP 1.2规范

  • Servlet容器被重新设计,并被命名为Catalina

  • JSP引擎被重新设计,并被命名为Jasper

  • 新的Coyote连接器

  • 支持JMX,使用JSP和基于Struts的管理系统

Tomcat 5.x

  • 符合Servlet 2.4 和 JSP 2.0规范

  • 精简的垃圾收集系统

  • 更快的JSP解析和改进过的标签库处理

  • Windows和Unix的本地操作系统整合,可以将Tomcat注册为系统服务

  • 重构过的应用程序发布环境

目录结构(Tomcat 5.5.x)

$CATALINA_HOME Tomcat安装目录

├─bin 用以启动、关闭Tomcat或者其他功能的脚本(.bat文件和.sh文件)

├─common Catalina和Web应用程序会用到的Class及库文件

├─conf 用以配置Tomcat的XML及DTD文件

├─logs Catalina和其他Web应用程序的日志文件

├─server Catalina用到的Class及库文件

├─shared Web应用程序用到的Class及库文件

├─temp 临时文件

├─webapps Web应用程序根目录

└─work 用以产生有JSP编译出的Servlet的.java和.class文件

==================================================

几种常用的Web框架体系系统简介:

CRM系统(客户关系管理系统):代表作Suger

内容管理系统:mambo,joomla(基于PHP和MySQL)

论坛发布系统:phpBB,Discuz

ERP:compiere (JBoss+Oracle)

在线OA,在线Offic系统等。

1,安装apache 80 httpd-2.0.55…tar.gz

2,安装jdk JAVA环境 jdk-6u5-linux-i586-rpm.bin

3,安装tomcat 8080 jakarta-tomcat-4.1.31.tar.gz

4,安装tomcat-connectors 连接器 jakarta-tomcat-connectors-jk2-2.0.4-src.tar.gz

当有请求发送给APACHE(80)时,HTTPD使用TOMCAT连接器通过8009端口调用TOMCAT,把请求交给TOMCAT.

5,要设置APACHE支持TOMCAT

配置http.conf 加载mod_jk2.so 支持TOMCAT

实验报告

一、apache安装

1、解压HTTPD包

cd /usr/local/src

tar -xzvf httpd-2.2.9.tar.gz

2、cd httpd-2.2.9

编译前的配置

./configure

./configure –prefix=/usr/local/apache2

–with-mpm=worker

–enable-mods-shared=all

–enable-so

3、make

4、make install

5、/usr/local/apache2/bin/apachectl start

二、安装并配置Java环境(JDK或JRE)

cd /usr/local/src

chmod u+x jdk-6u5-linux-i586-rpm.bin

./jdk-6u5-linux-i586-rpm.bin

#Java的环境变量要设置:

vim /etc/profile

———————————-

export JAVA_HOME=/usr/java/jdk1.6.0_05 #在文件的末行加入

PATH=$PATH:/usr/java/jdk1.6.0_05/bin/

————————————

. /etc/profile

echo $JAVA_HOME

echo $PATH

三、然后是安装tomcat:

1.安装tomcat

cd /usr/local/src

tar xvfz jakarta-tomcat-4.1.31.tar.gz -C /usr/local/

mv jakarta-tomcat-4.1.31/ tomcat

vim /etc/profile

——————-

export CATALINA_HOME=/var/www/tomcat

export CATALINA_HOME=/var/www/tomcat

export CATALINA_TMPDIR=/var/www/tomcat/temp

export JAVA_HOME=/usr/java/jdk1.6.0_05

———————————-

source /etc/profile #重新执行一下这个配置文件,使环境变量生效

/usr/local/tomcat/bin/startup.sh

Using CATALINA_BASE: /var/www/tomcat

Using CATALINA_HOME: /var/www/tomcat

Using CATALINA_TMPDIR: /var/www/tomcat/temp

Using JAVA_HOME: /usr/java/jdk1.6.0_05

2.测试tomcat

在浏览器中输入http://your_ip_addr:8080可以看到tomcat的默认页面

3.修改tomcat的8080端口

tomcat默认监听的是8080端口,可以设置为80端口:

vim /usr/local/tomcat/conf/server.xml

————

把8080改为80

————

在浏览器中输入http://your_ip_addr:80同样能看到tomcat的默认页面

三、tomcat-connectors的安装:

1.编译安装tomcat-connectors

tar zxvf jakarta-tomcat-connectors-jk2-2.0.4-src.tar.gz -C /usr/local

mv jakarta-tomcat-connectors-jk2-2.0.4-src/ tomcat-connectors

cd tomcat-connectors/jk/native2/

./configure –with-apache2=/usr/local/apache –with-apxs2=/usr/local/apache/bin/apxs –with-tomcat41=/var/www/tomcat

make

make install

.

2.手动安装mod_jk2.so模块:

cp /usr/local/tomcat-connectors/jk/build/jk2/apache2/mod_jk2.so /usr/local/apache2/modules/

vim /usr/local/apacle2/conf/httpd.conf

———————————————

#加入以下行

LoadModule jk2_module modules/mod_jk2.so

———————————————

cp /usr/local/tomcat-connectors/jk/conf/workers2.properties /usr/local/apache/conf #workers2.properties是jk2_module的配置文件

vim /usr/local/apache/conf/workers2.properties

———————————

[uri:/test/*] #仅把192.168.0.180/test/的页面解析请求转发给tomcat

info=Extension mapping

[uri:/examples/*]改为[uri:/*] #即把所有类型的文件都转发给tomcat

————————————————————————-

/usr/local/apache/bin/apachectl stop

/usr/local/apache/bin/apachectl start

/usr/local/tomcat/bin/shutdown.sh

/usr/local/tomcat/bin/startup.sh

startup.sh

Using CATALINA_BASE: /var/www/tomcat

Using CATALINA_HOME: /var/www/tomcat

Using CATALINA_TMPDIR: /var/www/tomcat/temp

Using JAVA_HOME: /usr/java/jdk1.6.0_05

#以上的配置相当于把apche当作一个转发器(–with部分),把所有来自80端口的页面转发到tomcat-connectors的 jk2_mod这个模块,

它的配置文件workers2.properties告诉他 把”/*”(httpd服务的根)下的所有请求都转给(重定向)到tomcat。

3.测试:

cd /usr/local/tomcat/webapps/ROOT/

#放入站点目录.(如test)

http://your_ip_addr/test

四、注意

端口号

apache 80

tomcat 8009

tomcat 8080

把apache的80端口的请求通过8009交给TOMCAT.8080改成一个不容易知道的端口以保安全.

Notes Blog Archives About