apahe和tomcat的整合,两种方法,实验

更新时间:2023-12-10 13:06:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Linux下apahe和tomcat的整合

Apache和Tomcat同是Apache基金会下面的两个项目。

一个是HTTP WEB服务器,另一个是servlet容器(servlet container)。在我们生产的环境中,往往需要Apache做前端服务器,Tomcat做后端服务器。此时我们就需要一个连接器,这个连接器的作用就是把所有Servlet/JSP的请求转给Tomcat来处理。在Apache2.2之前,一般有两个组件可选择:mod_jk和mod_jk2。后来 mod_jk2没更新了,转而更新mod_jk,所以现在一般都使用mod_jk做Apache和Tomcat的连接器。

不过,自从Apache2.2出来后,你又多了种选择,那就是proxy-ajp。大家知道Apache里的proxy模块,可以实现双向代理功能,功能非常强大。其实从连接器的实现原理上来说,用proxy模块来实现是非常自然的。proxy模块的功能无非就是把相关的请求发给特定的主机再返回结果。那连接器的功能需求就是要把所有对Servlet/JSP的请求都转给后台的Tomcat。

配置编译环境:

yum -y install gcc gcc-c++ libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel openssl openssl-devel autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel

安装:

1.安装JAVA环境

cp jdk-6u19-linux-i586-rpm.bin /usr/local/ cd /usr/local/

chmod +x jdk-6u19-linux-i586-rpm.bin ./ dk-6u19-linux-i586-rpm.bin yes

vi /etc/profile

JAVA_HOME=/usr/java/default PATH=$JAVA_HOME/bin:$PATH

CLASSPATH=$JAVA_HOME/lib/dt.jar: $JAVA_HOME/lib/tools.jar export PATH JAVA_HOME CLASSPATH source /etc/profile java -version

2.安装mysql

tar zxvf mysql-5.1.44.tar.gz

./configure --prefix=/usr/local/mysql --with-charset=gbk --with-extra-charsets=all --enable-thread-safe-client --enable-local-infile --with-low-memory make && make install groupadd mysql

useradd -g mysql mysql

cp /opt/mysql-5.1.44/support-files/my-medium.cnf /etc/my.cnf chown -R mysql.mysql /usr/local/mysql/

/usr/local/mysql/bin/mysql_install_db --user=mysql chown -R root.root /usr/local/mysql

chown -R mysql.mysql /usr/local/mysql/var

/usr/local/mysql/bin/mysqld_safe --user=mysql &

/usr/local/mysql/bin/mysqladmin -u root password \

echo \ldconfig ldconfig -v

echo \

3.安装apache

tar zxvf httpd-2.2.15.tar.gz

./configure --prefix=/usr/local/apache --enable-so --enable-mods-shared=most --enable-rewrite=share --enable-proxy=share --enable-proxy-ajp=share make && make install

/usr/local/apache/bin/apachectl -k start

http://192.168.10.221/index.html 看到apache \

4.安装tomcat

tar zxvf apache-tomcat-6.0.14.tar.gz mv apache-tomcat-6.0.14 tomcat vi /usr/local/tomcat/bin/catalina.sh JAVA_HOME=/usr/java/default vi /etc/rc.d/rc.local

export JDK_HOME=/usr/java/default export JAVA_HOME=/usr/java/default /usr/local/tomcat/bin/startup.sh

http://192.168.10.221:8080 看到tomcat首页

5.安装php

tar zxvf php-5.2.5.tar.gz ./configure

--prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql/ --with-config-file-path=/usr/local/php/ --with-mysql-sock=/tmp/mysql.sock --enable-sockets make && make install

cp php.ini-dist /usr/local/php/php.ini vi /usr/local/apache/conf/http.conf

LoadModule php5_module modules/libphp5.so AddType application/x-httpd-php .php

DirectoryIndex index.html index.php index.jsp

cd /usr/local/apache/htdocs vi index.php

/usr/local/apache/bin/apachectl -k restart http://192.168.10.221/test.php

6.整合apache 和 tomcat 第一种方法: 利用apache的proxy 代理模块,把80端口的请求转给tomcat处理 实施: 在上面试验的基础上,编辑apache 配置文档httpd.conf

#vi /usr/local/apache/conf/httpd.conf

去掉Include conf/extra/httpd-vhosts.conf前面的#号

#vi /usr/local/apache/conf/extra/httpd-vhosts.conf 添加

DocumentRoot \ ServerName http://192.168.10.221/ ProxyPass / ajp://127.0.0.1:8009/

ProxyPassReverse / ajp://127.0.0.1:8009/

DocumentRoot \ ServerName http://192.168.10.221/

建立一个jsp的测试文件

cd /usr/loca/apache/htdocs/aaa cat index.jsp

First Page

Today is:

<%= new java.util.Date() %>

修改tomcat设置档文件 在HOST段内,添加一行

debug=\

/usr/local/apache/bin/apachectl -k restart /usr/local/tomcat/bin/shutdown.sh /usr/local/tomcat/bin/startup.sh

测试整合是否成功:

首先访问tomcat的8080端口,看服务页面 http://192.168.10.221:8080/

然后访问apache的80端口,看服务页面 http://192.168.10.221/

可以看出,当访问apache默认端口时,也能转到tomcat处理jsp,这就证明apache和tomcat已经完成整合了。

第二种方法:

通过mod_jk.so 连接apache和tomcat 实施:

先把方法一中用到的Include Virtual hosts 注释掉

# Virtual hosts

#Include conf/extra/httpd-vhosts.conf

tar zxvf jakarta-tomcat-connectors-current-src.tar.gz

cd /opt/jakarta-tomcat-connectors-1.2.14.1-src/jk/native

./configure --with-apxs=/usr/local/apache/bin/apxs (注意:这里是--with-apxs 而不是--with-apxs2)

make;make install

会生成mod_jk.so,然后把这个模块拷贝到apache的modules目录下

cp native/apache-2.0/mod_jk.so /usr/local/apache/modules/

vi /usr/local/apache/conf/httpd #add mod_jk.so

LoadModule jk_module modules/mod_jk.so Include /usr/local/apache/conf/mod_jk.conf

vi /usr/local/apache/conf/mod_jk.conf # Where to put jk logs

JkLogFile /usr/local/apache/logs/mod_jk.log # Set the jk log level [debug/error/info] JkLogLevel info

# Select the log format

JkLogStampFormat \# JkOptions indicate to send SSL KEY SIZE,

JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories # JkRequestLogFormat set the request format JkRequestLogFormat \

# 将所有servlet 和jsp请求通过ajp13的协议送给Tomcat,让Tomcat来处理 JkMount /servlet/* ajp13 JkMount /*.jsp ajp13

vi /usr/local/apache/conf/workers.properties workers.tomcat_home=/usr/local/tomcat workers.java_home=/usr/java/jdk1.6.0_19 worker.list=ajp13

worker.ajp13.port=8009 worker.ajp13.host=localhost worker.ajp13.type=ajp13 worker.ajp13.lbfactor=50 worker.loadbalancer.type=lb

worker.loadbalancer.balanced_workers=ajp13 worker.ajp13.cachesize=10

worker.ajp13.cache_timeout=600 worker.ajp13.socket_keepalive=1 worker.ajp13.socket_timeout=300

重启apache和tomcat

/usr/local/apache/bin/apachectl -k restart /usr/local/tomcat/shutdown.sh /usr/local/tomcat/startup.sh

测试用这个方法是否可以将apache与tomcat整合:

注意此时apache的文件目录为/usr/local/apache/htdocs,而tomcat的文件目录为

/usr/local/apache/htdocs/aaa 访问http://192.168.10.221/index.jsp

这和访问tomcat默认测试页面内容是一样的,证明apache已经整合了tomcat。

访问http://192.168.10.221/index.php php页面还由apache处理

试验完成。

本文来源:https://www.bwwdw.com/article/pez5.html

Top