Apache与Tomcat的整合详解(Linux)
Tomcat简介及作用:
创新互联专注于米易网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供米易营销型网站建设,米易网站制作、米易网页设计、米易网站官网定制、微信小程序开发服务,打造米易网络公司原创品牌,更为您提供米易网站排名全网营销落地服务。Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。目前最新版本是8.0。
Tomcat服务器是一个免费的开放源代码的Web应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的选择。
Tomcat很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
Apache是一个强大的Web服务器在处理静态页面、处理大量网络客户请求、支持服务的种类以及可配置方面都有优势,高速并且强壮。但是没有JSP/Servlet的解析能力。整合Apache和Tomcat可以看作是用Tomcat做Apache的jsp/servlet解析插件,将两者优势结合起来。不过Tomcat作为一个Web服务器,本身具备了基本的Web服务功能,在SUN的力推下,将来或许越来越强壮到不需要借助Apache优势的地步。
Apache与tomcat的异同:
apache支持静态页,tomcat支持动态的,比如servlet等,
一般使用apache+tomcat的话,apache只是作为一个转发,对jsp的处理是由tomcat来处理的。
apache可以支持phpcgiperl,但是要使用java的话,你需要tomcat在apache后台支撑,将java请求由apache转发给tomcat处理。
apache是web服务器,Tomcat是应用(java)服务器,它只是一个servlet容器,可以认为是apache的扩展,但是可以独立于apache运行。
Apache是专门用了提供HTTP服务的,以及相关配置的(例如虚拟主机、URL转发等等)
Tomcat是Apache组织在符合J2EE的JSP、Servlet标准下开发的一个JSP服务器;
Apache与tomcat整合的好处:
如果客户端请求的是静态页面,则只需要Apache服务器响应请求
如果客户端请求动态页面,则是Tomcat服务器响应请求
因为jsp是服务器端解释代码的,这样整合就可以减少Tomcat的服务开销
Apache只是一个WEB服务器,并不能运行JSP程序。如果要运行JSP程序,还需要安装TOMCAT服务器软件,通过连接器组件整合TOMCAT与APACHE。当用户请求访问.jsp网页时,由APACHE自动调用TOMCAT服务进行解析,并将结果页面返回到客户端浏览器。
apache是web服务器,tomcat是应用(java)服务器,它只是一个servlet容器,可以认为是apache的扩展,但是可以独立于apache运行。
一、搭建apache网站服务器
1、编译安装Apache:
先从Apache官方网站上下载Linux下的apache的安装包,这里以http-2.3.8.tar.gz为例:
具体操作步骤如下:
整个实验通过编译方式安装apache(需要先卸载apache的RPM软件包):
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
1)将apache源码包复制到RHEL6主机中并释放apache源码包:
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
2)配置编译选项(编译时会报缺少APR的依赖错误):
[root@jsp~]#cd/usr/src/httpd-2.3.8/
[root@jsphttpd-2.3.8]#./configure--prefix=/usr/local/apache2--enable-so--enable-rewrite--enable-ssl--with-ssl=/usr/lib--enable-auth-digest--enable-cgi--with-suexec-caller=daemon--with-suexec-docroot=/usr/local/apache2/htdocs--with-apr=/opt/resource/apr-1.4.2--with-apr-util=/opt/resource/apr-util-1.3.10
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
解决方法:
下载apr-1.4.2.tar.gz和apr-util-1.3.10.tar.gz两个文件,下载后,复制到/opt/resource/目录。
(如果按正常思路,我是先解决这些问题然后直接编译安装apache,这样会省去很多不必要的麻烦)
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
解压apr-1.4.2.tar.gz和apr-util-1.3.10.tar.gz软件包:
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
按先后顺序分别安装apr和apr-util软件:
安装apr-1.4.2软件:
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
安装apr-util软件:
[root@jspapr-1.4.2]#cd../apr-util-1.3.10
[root@jspapr-util-1.3.10]#./configure--prefix=/opt/resource/apr-util-1.3.10--with-apr=/opt/resource/apr-1.4.2
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
到这里:安装apache所需apr的环境安装完毕。
重新执行编译apache的./configure时仍然报错,错误信息如下:
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
解决方法:通过YUM安装关联libpcre软件包:
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
重新执行./configure命令完成配置编译选项:
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
3)编译并安装apache程序(编译安装过程貌似很长,期间可以喝杯咖啡哦,呵呵):
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
到此Apache的安装完毕。
2、启动、终止及重启httpd服务
1)使用带start选项的apachectl命令启动httpd服务:
启动报错:
httpd:apr_sockaddr_info_get()failedforjsp
httpd:Couldnotreliablydeterminetheserver\'sfullyqualifieddomainname,using127.0.0.1forServerName
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
排错思路:http://wenzhongxiang.blog.51cto.com/6370734/1285772;根据提示排除故障然后查看端口是否监听:
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
2)为了使apache服务器的运行更加方便,可以为apachectl创建链接文件,以便管理员直接执行apachectl命令就可以启动apache服务。
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
3)设置服务器开机后自动启动httpd服务:
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
3、访问apache网站服务器的默认测试页:
在apache服务器上新建防火墙规则,允许http协议的数据包通过:
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
在客户机使用浏览器访问WEB服务器:http://192.168.10.1:
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
整个Apache服务器的安装及调试到此完成。
二、安装Tomcat:
1、安装配置jdk开发环境:
1)安装jdk软件(安装Tomcat的前提条件:先安装jdk并配置好jdk)如下图所示:
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
(本实验是在32位的RHEL6环境下搭建实验环境,所以安装的JDK是32位的)
为jdk的安装目录及执行程序创建链接文件以方便使用:
注解:-f:选项表示ln命令替换在任何已存在的目的路径。
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
修改/etc/profile文件,添加Java开发环境需要的变量设置。
JAVA_HOME=/usr/local/jdk6
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH
exportJAVA_HOMECLASSPATHPATH
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
刷新配置:
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
进行简单的测试:
eg:查看安装的jdk程序版本信息:
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
eg:编写一个java测试小程序,编译并执行:
[root@jsplocal]#vimwelcome.java
publicclasswelcome{
publicstaticvoidmain(Stringargs[]){
System.out.println("StayhungryStayfoolish");
}
}
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
执行javac命令编译程序,执行java命令运行welcome.java程序,如下图所示:
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
测试成功!
1:安装配置Tomcat:
1)安装(Tomcat的安装过程简单,只需要将源码包解压至目的文件夹即可):
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
2)配置(为Tomcat的安装目录及启动、关闭服务的脚本创建链接文件,以方便使用):
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
3)修改/etc/profile文件,设置Tomcat服务需要使用的变量CATALINA_HOME:
[root@jsp~]#vim/etc/profile
JAVA_HOME=/usr/local/jdk6
CATALINA_HOME=/usr/local/tomcat
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/lib/servlet-api.jar
PATH=$JAVA_HOME/bin:$PATH
exportJAVA_HOMECATALINA_HOMECLASSPATHPATH
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
4)修改tomcat-users.xml文件,添加管理员账户wen设置:
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
5)进行测试:
启动Tomcat服务,并确认Tomcat服务的监听状态:
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
设置Tomcat服务开机自启动:
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
访问http://web服务器IP:8080,可以看到Tomcat的web首页,如下:
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
通过单击“TomcatManager”链接登录Tomcat并进行管理,如下:
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
Tomcat目录结构:
/bin:存放windows或Linux平台上启动和关闭Tomcat的脚本文件
/conf:存放Tomcat服务器的各种全局配置文件,其中最重要的是server.xml和web.xml
/doc:存放Tomcat文档
/server:包含三个子目录:classes、lib和webapps
/server/lib:存放Tomcat服务器所需的各种JAR文件
/server/webapps:存放Tomcat自带的两个WEB应用admin应用和manager应用
/common/lib:存放Tomcat服务器以及所有web应用都可以访问的jar文件
/shared/lib:存放所有web应用都可以访问的jar文件(但是不能被Tomcat服务器访问)
/logs:存放Tomcat执行时的日志文件
/src:存放Tomcat的源代码
/webapps:Tomcat的主要Web发布目录,默认情况下把Web应用文件放于此目录
/work:存放JSP编译后产生的class文件
如需停止Tomcat服务,可以执行“shutdown.sh”脚本。
三、将Tomcat和Apache服务进行连接:
虽然Tomcat可以独立作为WEB服务器,但是Tomcat的WEB功能远没有Apache强大,在实际应用中,可以通过mod_jk连接器将Apache和Tomcat整合在一起。调用Tomcat服务的工作由Apache来完成,而用户只需要访问Apache服务。
1)安装mod_jk模块:
释放tomcat-connectors源码包(mod_jk连接器源码包)
编译配置:到解压后的native目录进行安装配置,指定apache目录、tomcat目录和JDK目录位置。
[root@jspnative]#./configure--with-apxs=/usr/local/apache2/bin/apxs--with-tomcat=/usr/local/tomcat--with-java-home=/usr/local/jdk6--with-jni
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
配置正确完成后,进行编译make,指定生成文件位置并makeinstall:
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
编译安装结束后在/usr/local/apache2/modules目录生成了一个mod_jk.so文件,这就是转发模块。
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
2)调整Apache服务、Tomcat服务的相关配置,并重启tomcat、apache服务。
切换到tomcat-connectors解压目录下的conf子目录下,将相关文件拷贝到apache的相关目录下,如图所示:
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
修改httpd.conf文件,在httpd.conf文件中添加如下内容:
[root@jsp~]#vim/usr/local/apache2/conf/httpd.conf
Includeconf/extra/httpd-jk.conf
AddTypeapplication/x-httpd-jsp.jsp
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
修改/usr/local/apache2/conf/extra/httpd-jk.conf文件,修改后内容如下:
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
截图所列内容默认存在,而39、40行需用户自己手工添加。
修改workers.properties文件(workers.properties是转发模块的工作单,用来定义转发主机和监听端口等内容。)
修改后的内容如下:
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
注解:红线标注处需要修改,标号处用“#”号注解:
将tomcat主目录修改成和apache网站文档目录一致:
由于tomcat默认的主目录是/usr/local/tomcat/webapps/ROOT/,因此应编辑tomcat的主配置文件/usr/local/tomcat/conf/server.xml文件,找到如下语句。
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
3)重启apache和tomcat服务:
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
4)进行测试:
eg:创建一个显示系统时间的JSP测试页:
[root@jsp~]#cd/usr/local/apache2/htdocs/
[root@jsphtdocs]#vimwelcome.jsp
StayhungryStayfoolish!!!
Nowthetimeis:
截图内容如下:
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
通过浏览器访问welcome.jsp测试页,访问效果如下:
Apache与Tomcat的整合详解(Linux) - 呼吸了哦 - 呼吸的博客
Apache和tomcat整合实验到此结束(这里我们所要了解的最基本的概念就是我们在使用apache和tomcat时存在的差异在哪里,他们整合在一起的优点又有哪些,这是关键)。
当前文章:Apache与Tomcat的整合详解(Linux)
文章链接:http://hbruida.cn/article/cjpiij.html