实验环境:centos6.4-i386

有用软件:http://pan.baidu.com/s/1bn1m2UN

网络拓扑:

Apache+tomcat的整合_jsp

IP地址规划

    Httpd服务器:192.168.29.20

        Tomcat服务器:192.168.29.30

Apache+Tomcat整合的好处:

1.Apache主要用来解析静态文本,htmltomcat虽然也有此功能,但apache能大大提高效率,对于并发数较大的企业级应用,能更好的显示apache的高效率;

2.Tomcat用来解析jsp,servlet,所有的客户请求首先会发送到Apache,如果请求是静态文本则由apache解析,并把结果返回给客户端,如果是动态的请求,如jspapache会把解析工作交给tomcat,由tomcat进行解析(这首先要两者现实整合),tomcat解析完成后,结果仍是通过apache返回给客户端,这样就可以达到分工合作,实现负载均衡,提高系统的性能!而且因为JSP是服务器端解释代码的,这样整合可以减少Tomcat的服务开销。

Apache+Tomcat整合的原理

作为Apache下面的子项目,Tomcat Apache之间有着天然的联系。在实际操作中,主要是Apache作为主服务器运行,当监听到有jsp或者servlet的请求时,将请求转发给tomcat服务器,由tomcat服务器进行解析后,发回apache,再由apache发回用户。

tomcat中有两个监听的端口,一个是8080用于提供web服务,一个是8009用于监听来自于apache的请求。当apache收到jsp或者servlet请求时,就向tomcat 8009端口发送请求,交由tomcat处理后,再返回给apache,由apache返回给客户。

Tomcat安装

首先搭建java的运行环境,安装jdk

[root@localhosttomcat]# rpm -ivh jdk-7u45-linux-i586.rpm

编辑环境变量/etc/profile

Apache+tomcat的整合_jsp_02

然后重新加载/etc/profile文件

[root@localhosttomcat]# . /etc/profile

然后执行java –version可以看到java的版本号

[root@localhosttomcat]# java –version
java version"1.7.0_09-icedtea"
OpenJDK RuntimeEnvironment (rhel-2.3.4.1.el6_3-i386)
OpenJDK Client VM(build 23.2-b09, mixed mode)

然后安装tomcat

[root@localhosttomcat]# tar -zxvf apache-tomcat-7.0.42.tar.gz -C /usr/local/
[root@localhosttomcat]# cd /usr/local/
[root@localhostlocal]# ln -s apache-tomcat-7.0.42 tomcat

将/usr/local/tomcat目录下的bin目录加入到搜索路径中

Apache+tomcat的整合_tomcat_03

到这里tomcat就安装完成了,先来测试一下

开启tomcat

[root@localhost ~]#catalina.sh start

Apache+tomcat的整合_apache_04

从图中看可以访问

httpd安装

首先安装apr

[root@nddnd ~]# tar-zxvf apr-1.4.6.tar.gz -C /usr/local/src/
[root@nddnd ~]# cd/usr/local/src/apr-1.4.6/
[root@nddndapr-1.4.6]#./configure –prefix=/usr/local/apr
[root@nddndapr-1.4.6]# make && make install

   安装apr-util

[root@nddnd ~]# tar -zxvf apr-util-1.5.1.tar.gz -C /usr/local/src/
[root@nddnd ~]# cd /usr/local/src/apr-util-1.5.1/
[root@nddndapr-util-1.5.1]# ./configure --prefix=/usr/local/apr-util--with-apr=/usr/local/apr/bin/apr-1-config
[root@nddndapr-util-1.5.1]# make && make install

安装httpd

 

[root@nddnd~]# tar -jxvf httpd-2.4.4.tar.bz2 -C /usr/local/src/
[root@nddnd~]# cd /usr/local/src/httpd-2.4.4/
[root@nddndhttpd-2.4.4]#  ./configure  --prefix=/usr/local/apache  --sysconfdir=/etc/httpd   --enable-so --enable-rewrite  --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr-util/bin/apu-1-config  --with-pcre  -with-z   --enable-mpms-shared=all --with-mpm=event  --enable-proxy --enable-proxy-http  --enable-proxy-ajp
[root@nddndhttpd-2.4.4]# make && make install


  添加/usr/local/apache/bin到系统搜索路径

   Apache+tomcat的整合_jsp_05

[root@nddndapache]# . /etc/profile

编写控制httpd的shell脚本放到/etc/init.d/目录里。

#!/bin/bash
prog=/usr/local/apache/bin/httpd
lockfile=/var/lock/subsys/httpd
start(){
       if [ -e $lockfile ];then
       echo "httpd server is started"
       else echo -n "httpd server is starting... "
       sleep 1
       $prog –k start &>/dev/null && echo  "[ ok]" && touch $lockfile ||echo "[ failer ]"
       fi
}
stop(){
       if [ ! -e $lockfile ];then
       echo "httpd server is stoped"
       else echo -n "httpd server is stoping... "
       sleep 1
       $prog –k stop &>/dev/null && echo "[ ok ]"&& rm -rf $lockfile ||echo "[ failer ]"
       fi
}
status(){
       if [ -e $lockfile ];then
       echo "httpd server is started"
       else echo "httpd server no found"
       fi
}
case $1 in
start)
  start
   ;;
stop)
   stop
   ;;
restart)
   stop
  start
   ;;
status)
  status
   ;;
*)
echo"USAGE:start|stop|restart|status"
  ;;
esac

给于可执行权限

[root@nddnd apache]# chmod a+x/etc/init.d/httpd

编辑httpd的配置文件

[root@nddnd apache]# vim/etc/httpd/httpd.conf

Apache+tomcat的整合_apache_06

启动httpd

[root@nddnd apache]# service httpd start

Httpd到这里也安装完成了。

配置httpd

[root@nddndapache]# vim /etc/httpd/httpd.conf

Apache+tomcat的整合_jsp_07

编辑:/etc/httpd/extra/httpd-vhosts.conf

[root@nddndapache]# vim /etc/httpd/extra/httpd-vhosts.conf

Apache+tomcat的整合_jsp_08

重启httpd

[root@nddndapache]# service httpd restart

Tomcat服务器配置

[root@localhostconf]# mkdir -pv /www/webapps
[root@localhostconf]# cd /www/webapps/
[root@localhost webapps]# mkdirtest
[root@localhost webapps]#mkdir test/{lib,classes,WEB-INF}
[root@localhosttest]# vim index.jsp
<%@pagelanguage="java" %>
<html>
        <head>
            <title>TomcatA</title>
        </head>
    <body>
    <h2><font color="red">TomcatA in www.tyedus.com</font></h2>
    <% out.println("hello,word");%>
    </body>
</html>

修改/usr/local/tomcat/conf/server.xml

[root@localhost webapps]# cd/usr/local/tomcat/conf/
[root@localhost conf]# vimserver.xml

Apache+tomcat的整合_apache_09

测试访问www.abc.com

Apache+tomcat的整合_apache_10

从图中看可以成功访问。

到这里httpd和tomcat的结合就介绍完了。