之 前有写过LAMP平台的搭建,包括后面LAMP平台的集成(但是由于我发布的文章娱乐性太少,居然被人恶指我的文章是转载的,对此我表示很无奈,本身写博 客也只是记录和帮助到需要的人,所以后面我仍会保持这样的风格去发布我自己的博文),本文进一步介绍Apache服务器与Tomcat的集成,以便支持 JSP。都知道的是Apache支持静态页面,Tomcat支持动态页面,我们可以使用Apache+Tomcat的方式把它们的优势结合起来,强强联 合,Apache负责转发,对Jsp的处理交给Tomcat来处理。也就是说Apache专门提供HTTP服务,以及相关配置(例如虚拟主机,URL转发 等),而Tomcat是Apache组织在服务J2EE的JSP、Servlet标准下开发的一个JSP服务器。既然Apache和Tomcat都是 Web服务器,怎么不直接使用Tomcat服务器,反而去和Apache集成,我们知道Tomcat支持Servlet和JSP,本身是可以作为Web Server,但是、当处理大量静态页面时,Tomacat不如Apache性能好,不如Apache那样强壮。但是Apache作为最流行的Web服务 器虽然能够高效的处理静态页面,但并不支持JSP及Servlet,所以现在常用的做法是将它们合二为一,让Apache处理静态页面,而把动态页面的请 求交给Tomcat处理,发挥各自的优势。通过在Apache中加载整合模块和进行设置,Apache就能够根据URL,把不属于自己的请求转给 Tomcat。要让Apache和Tomcat联合工作,还需要一个连接器把它们联系起来。Connector对于性能、配置的方便性有很重要的影响,目前大致有JK1.x、JK2、mod_webapp三种,JK使用比较广泛。
Tomcat 与 Apache 集成的准备工作 (注: 本环境是在Apache编译完成后继续的 )JDK 安装与测试(在tomcat运行环境下,JDK是必不可少的软件,因为tomcat只是一个Servlet/JSP容器,底层的操作都需要JDK来完成)[root@chenyi software]# chmod a+x jdk-6u7-linux-i586.bin [root@chenyi software]# ./jdk-6u7-linux-i586.bin环境变量设置(Tomcat在启动的时候会去查找jdk的安装路径)[root@chenyi software]# vi /etc/profile.d/java.sh export JAVA_HOME=/software/jdk1.6.0_07 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH[root@chenyi software]# chmod 755 /etc/profile.d/java.sh [root@chenyi software]# . /etc/profile可以测试下java是否正常工作[root@chenyi software]# java -version java version "1.6.0_07" Java(TM) SE Runtime Environment (build 1.6.0_07-b06) Java HotSpot(TM) Client VM (build 10.0-b23, mixed mode, sharing)测试JAVA程序[root@chenyi software]# vi test.java public class test { public static void main(String args[]) { System.out.println("Hello World!"); } } [root@chenyi software]# javac test.java [root@chenyi software]# java test Hello World!安装Tomcat(Tomcat的安装只需要解压,改名移到合适的地方即可完成安装)[root@chenyi lamp]# tar zxf apache-tomcat-6.0.14.tar.gz [root@chenyi lamp]# mv apache-tomcat-6.0.14 /software/tomcat编译生成mod_jk。(这里是为了更灵活的使用mod_jk连接器,所以采用源码方式编译出所需要的JK模块(在编译时需要指定apache的apxs的路径))[root@chenyi lamp]# tar zxf jakarta-tomcat-connectors-1.2.15-src.tar.gz [root@chenyi lamp]# cd jakarta-tomcat-connectors-1.2.15-src [root@chenyi jakarta-tomcat-connectors-1.2.15-src]# ./configure --with-apxs=/software/apache2/bin/apxs && make && make install [root@chenyi native]# ls /software/apache2/modules/mod_jk.so /software/apache2/modules/mod_jk.so新建mod_jk.conf(注意我所在的路径)[root@chenyi httpd]# vi mod_jk.conf loadModule jk_module "/software/apache2/modules/mod_jk.so" #指定mod_jk.so JkWorkersFile "/etc/httpd/workers.properties" #JK连接器属性的设定 JkLogFile "/software/tomcat/logs/mod_jk.log" JkLogLevel emerg ServerName localhost Jkmount /*.jsp ajp13新建workers.propertiesworkers.tomcat_home=/software/tomcat workers.java_home=/software/jdk1.6.0_07 ps=/ workers.list=ajp13 #worker.list用来定义Workers列表,当apache启动时,workers.properties作为插件将初始化出现在worker.list列表中的workers。 workers.ajp13.port=8009 #tomcat worker主机监听的端口。默认情况下tomcat在ajp13协议中使用的端口为8009 workers.ajp13.host=127.0.0.1 #监听ajp13请求的的tomcat worker主机地址 workers.ajp13.type=ajp13 #定义一个名为“ajp13”的worker,其使用ajp13协议与tomcat 进程通讯 workers.ajp13.lbfactor=1 #当tomcat用作负载均衡时,此属性被使用,表示此tomcat worker节点的负载均衡权值。配置Apache[root@chenyi httpd]#vi httpd.conf添加如下语句Include /etc/httpd/mod_jk.conf保存退出后重启Apache和Tomcat[root@chenyi ~]# /software/apache2/bin/apachectl stop [root@chenyi ~]# /software/apache2/bin/apachectl start [root@chenyi ~]# /software/tomcat/bin/shutdown.sh Using CATALINA_BASE: /software/tomcat Using CATALINA_HOME: /software/tomcat Using CATALINA_TMPDIR: /software/tomcat/temp Using JRE_HOME: /software/jdk1.6.0_07/jre [root@chenyi ~]# /software/tomcat/bin/startup.sh Using CATALINA_BASE: /software/tomcat Using CATALINA_HOME: /software/tomcat Using CATALINA_TMPDIR: /software/tomcat/temp Using JRE_HOME: /software/jdk1.6.0_07/jre通过netstat查看相关服务状态[root@chenyi ~]# netstat -pant | grep 80 tcp 0 0 127.0.0.1:42442 127.0.0.1:8009 TIME_WAIT - tcp 0 0 127.0.0.1:42441 127.0.0.1:8009 TIME_WAIT - tcp 0 0 127.0.0.1:42438 127.0.0.1:8009 TIME_WAIT - tcp 0 0 127.0.0.1:42439 127.0.0.1:8009 TIME_WAIT - tcp 0 0 127.0.0.1:42446 127.0.0.1:8009 TIME_WAIT - tcp 0 0 127.0.0.1:42440 127.0.0.1:8009 TIME_WAIT - tcp 0 0 127.0.0.1:42437 127.0.0.1:8009 TIME_WAIT - tcp 0 0 127.0.0.1:42443 127.0.0.1:8009 TIME_WAIT - tcp 0 0 127.0.0.1:42445 127.0.0.1:8009 TIME_WAIT - tcp 0 0 :::8080 :::* LISTEN 4434/java tcp 0 0 :::80 :::* LISTEN 4399/httpd tcp 0 0 ::ffff:127.0.0.1:8005 :::* LISTEN 4434/java tcp 0 0 :::8009 :::* LISTEN 4434/java tcp 0 0 ::ffff:127.0.0.1:58570 ::ffff:127.0.0.1:8005 TIME_WAIT - tcp 0 0 ::ffff:127.0.0.1:43053 ::ffff:127.0.0.1:8080 TIME_WAIT -通过http://IP:8080访问进行测试
本文转自 lgpqdwjh 51CTO博客,原文链接:http://blog.51cto.com/itchenyi/1169267,如需转载请自行联系原作者