如何整合apache2.4整合tomcat和Tomcat部署Web应用

centos6.0 下apache+tomcat整合笔记
①下载httpd-2.2.21.tar.gz
②下载apache-tomcat-7.0.23.tar.gz
③下载tomcat-connectors-1.2.32-src.tar.gz连接
①安装apache:
解压:tar zxvf httpd-2.2.21.tar.gz
改名:mv httpd-2.2.21 apache
#./configure --prefix=/002/apache
#make install
②安装tomcat
Tomcat无需安装解压就可以直接运行
③编译安装tomcat-connectors-1.2.32-src.tar.gz
1.解压:tar zxvf tomcat-connectors-1.2.32-src.tar.gz
2.改名:mv tomcat-connectors-1.2.32-src.tar.gz conn
# tar -xzvf tomcat-connectors-1.2.32-src.tar.gz&
#cd tomcat-connectors-1.2.31-src/native
#./configure --with-apxs=/002/apache/bin/apxs &#/002/apache是你apache的安装目录&
# cp apache-2.0/mod_jk.so /002/apache/modules/mod_jk.so&
④配置tomcat apache开机自启动
手动添加tomcat服务到系统中以下为具体配置:
1、配置apache 打开终端 输入chkconfig 系统会列出所有服务
chkconfig httpd on 即可
2、配置tomcat
cd /etc/rc.d/init.d &
chmod 755 tomcat
添加一下内容
startup script for the tomcat
# chkconfig: 345 80 15
# description: Tomcat is a Servlet+JSP Engine.
export JDK_HOME=/usr/java/javaeejdk/jdk7 &
export JAVA_HOME=/usr/java/jdk1.7.0_02
#输入JDK位置
# Source function library.
. /etc/rc.d/init.d/functions
if [ -z $(/sbin/pidof java) ]; then
echo &Starting tomcat&
/002/tomcat/bin/startup.sh
touch /var/lock/subsys/tomcat
echo &tomcat allready running&
if [ ! -z $(/sbin/pidof java) ]; then
echo &Shutting down tomcat&
/002/tomcat/bin/shutdown.sh
until [ -z $(/sbin/pidof java) ]; do :; done
rm -f /var/lock/subsys/tomcat
echo &tomcat not running&
case &$1& in
/002/tomcat/bin/catalina.sh version
echo &Usage: $0 {start|stop|restart|status}&
添加服务: chkconfig --add tomcat
开机启动:chkconfig tomcat on
⑤添加apache开机自启动
& & & & cp /002/apache/bin/apachectl /etc/init.d/httpd
& & & & sudo vi /etc/init.d/httpd
& & & & 在文件开头加入下面几行:
& & & & #!/bin/sh
# chkconfig:
# description: Apache is a World Wide Web
#chkconfig --add httpd
设置服务开机自动运行
#chkconfig httpd on
① 配置apache支持
#vi /002/apache/conf/httpd.conf
加入以下内容
LoadModule jk_module modules/mod_jk.so
Include /002/apache/conf/mod_jk.conf
② 添加配置文件mod_jk.conf
进入/002/apache/conf
#cd /002/apache/conf
#vi mod_jk.conf 加入以下内容
JkWorkersFile /002/apache/conf/workers.properties
JkLogFile /002/apache/logs/mod_jk.log
JkLogLevel info
# Select the log format
JkLogStampFormat &[%a %b %d %H:%M:%S %Y]&
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format
JkRequestLogFormat &%w %V %T&
JkMount /servlet/* worker1
JkMount /*.jsp worker1
#vi workers.properties
# Defining a worker named worker1 and of type ajp13
worker.list=worker1
# Set properties for worker1
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
worker.worker1.lbfactor=50
worker.worker1.cachesize=10
worker.worker1.cache_timeout=600
worker.worker1.socket_keepalive=1
worker.worker1.socket_timeout=300&
③ 配置httpd.conf
#vi httpd.conf
&修改以下内容
Listen 80 改为 Listen 127.0.0.1:80
&ServerName 你的主机名:80
在/var/web目录下写index.jsp测试文件
看服务器能不能正确解析
本人刚刚接触linux 笔记内容均为手写 并非教程只是记录本人搭建服务器环境的过程,所以没有截图
本人想传递的只是思想 一种大致的步骤 供安装者参考,最好不要完全照搬
每个软件的安装配置都是在虚拟机上调试N次,文档也是自己手写的(部分代码除外)
在此感谢互联网上的前辈们提供经验支持
【声明】:黑吧安全网()登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱,我们会在最短的时间内进行处理。
上一篇:【】【】Tomcat中如何使用netty的功能?
[问题点数:40分,结帖人glgl2424]
Tomcat中如何使用netty的功能?
[问题点数:40分,结帖人glgl2424]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2012年8月 总版技术专家分月排行榜第三2012年7月 总版技术专家分月排行榜第三
2014年8月 高性能开发大版内专家分月排行榜第一2013年11月 高性能开发大版内专家分月排行榜第一2012年12月 Java大版内专家分月排行榜第一2012年11月 Java大版内专家分月排行榜第一2012年10月 Java大版内专家分月排行榜第一2012年9月 Java大版内专家分月排行榜第一2012年8月 Java大版内专家分月排行榜第一2012年7月 Java大版内专家分月排行榜第一2012年6月 Java大版内专家分月排行榜第一2012年5月 Java大版内专家分月排行榜第一2012年4月 Java大版内专家分月排行榜第一2012年3月 Java大版内专家分月排行榜第一2012年2月 Java大版内专家分月排行榜第一2012年1月 Java大版内专家分月排行榜第一
2012年8月 总版技术专家分月排行榜第三2012年7月 总版技术专家分月排行榜第三
2014年8月 高性能开发大版内专家分月排行榜第一2013年11月 高性能开发大版内专家分月排行榜第一2012年12月 Java大版内专家分月排行榜第一2012年11月 Java大版内专家分月排行榜第一2012年10月 Java大版内专家分月排行榜第一2012年9月 Java大版内专家分月排行榜第一2012年8月 Java大版内专家分月排行榜第一2012年7月 Java大版内专家分月排行榜第一2012年6月 Java大版内专家分月排行榜第一2012年5月 Java大版内专家分月排行榜第一2012年4月 Java大版内专家分月排行榜第一2012年3月 Java大版内专家分月排行榜第一2012年2月 Java大版内专家分月排行榜第一2012年1月 Java大版内专家分月排行榜第一
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。apache整合tomcat部署集群 - 牛_ - 博客园
  近日,由于公司项目需要,所以学习了apache整合tomcat以及集群的一些知识。
  所以做下笔记日后回顾可以用到。
  apache只有处理静态事物的能力, 而tomcat的强项就是处理动态的请求,所以apache和tomcat整合相互取长补短,由apache作为入口,如果是请求静态页面或者是静态文件,由apache直接提供,如果是请求动态页面,则让apache分发到tomcat,由tomcat处理以后再响应给客户端。
apache和tomcat的整合需要准备的一些软件列表:
1.首先安装apache服务(httpd-2.2.25-win32-x86-no_ssl.msi),默认是80端口的,如果80端口被占用,则无法安装成功;
  用一下命令可以查询80端口被哪个进程id占用,netstat -aon|findstr "80"&
  再用一下命令查询该进程id是代表哪个进程,tasklist|findstr "2016"
  apache检查错误方法:进入cmd 然后进入 Apache安装目录(具体为你自己的安装目录)\bin& httpd.exe -w -n "Apache2" -k start
2.打开apache的安装目录下面的modules文件夹,把图1中的mod_jk.so文件放入
3.在apache安装目录的conf文件夹下面配置mod_jk.conf文件,如果没有则新增一个,内容为:
  图2中的第一行,指定mod_jk的配置文件,配置tomcat以及负载均衡
  图2中的第二行和第三行表示,当请求后缀我jsp或者是do的时候,apache把请求转发给tomcat来处理
3.配置完上面的配置文件以后,在apache的安装目录下的httpd.conf文件的末尾,把mod_jk.so模块以及mod_jk.conf配置文件加载进去
4.配置apache的安装目录下的workers.properties文件,如果该文件不存在,自己新增一个即可
介绍下图4中的各个参数:
worker.list = controller
#控制器名称
#========tomcat1========
worker.tomcat1.port=8009
#ajp协议的端口,如果2个tomcat部署在同一个服务器中,那个ajp端口需要不同
worker.tomcat1.host=127.0.0.1 #tomcat的所在主机的ip,如果是本机,则写本机的ip即可
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor=1
#========tomcat2========
worker.tomcat2.port=9009
worker.tomcat2.host=127.0.0.1
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor=1
#如果2个tomcat,该参数相同,表示等比例,如果想tomcat负载多一点,只要把这个参数改的大一点即可,具体多少还是得看情况
#========controller,负载均衡控制器========
worker.controller.type=lb
worker.controller.retries=3
#请求失败以后重试次数
worker.controller.balance_workers=tomcat1,tomcat2
#controller控制的tomcat的名称,分别为tomcat1和tomcat2,由tomcat中的server.xml中设值
worker.controller.sticky_session=false
#回话是否有粘性,false表示无粘性,同一个回话的请求会到不同的tomcat中处理
worker.controller.sticky_session_force=false #当一个节点蹦了,如果设值为true,那么服务器返回500错误给客户端,如果设值为false,则转发给其他的tomcat,但是会丢失回话信息
#更详细的参数说明:http://tomcat.apache.org/connectors-doc/reference/workers.html
5.安装好apache服务以后再准备好tomcat(两个tomcat作为例子)
tomcat需要配置server.xml文件
&?xml version='1.0' encoding='utf-8'?&
&!--如果多个tomcat部署在同一台服务器中,此处的关闭tomcat的端口需要更改,不能冲突--&
&Server port="8005" shutdown="SHUTDOWN"&
&Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /&
&Listener className="org.apache.catalina.core.JasperListener" /&
&Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" /&
&Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /&
&Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" /&
&GlobalNamingResources&
&Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" /&
&/GlobalNamingResources&
&Service name="Catalina"&
&Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="300" minSpareThreads="4"/&
&!--如果使用apache整合,那么此配置可以注释,因为apache是通过ajp协议来通信的,tomcat并不会直接暴露出来--&
&Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" maxThreads="300"/&
&!-- Define an AJP 1.3 Connector on port 8009 --&
&!--如果多个tomcat部署在同一个服务器中,此处的ajp协议端口必须不一样,并且需要增加jvmRoute属性,该属性的值即为workers.properties中的tomcat的名称--&
&Connector port="8009" protocol="AJP/1.3" redirectPort="8443" jvmRoute="tomcat1"/&
&Engine name="Catalina" defaultHost="localhost"&
&Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/&
&Realm className="org.apache.catalina.realm.LockOutRealm"&
&Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/&
&Host name="localhost"
appBase="webapps"
unpackWARs="true" autoDeploy="true"&
&Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" /&
&/Service&
  另外就是在web项目的web.xml中添加属性&distributable/&,用于告诉web容器,该项目属于分布式项目,不然无法session replication
6. 静态文件直接由apache响应,所需需要把部署的项目中的静态文件放在apache的安装目录下的htdocs文件夹下,偷懒的方法就是直接把tomcat的webapps中的项目拷贝一份放到htdocs中,所以htdocs的作用与tomcat的webapps类似
7.部署的时候经常会出现一些错误,当遇到错误的时候我经常需要查看日志文件,我经常查看的日志有apache的日志以及tomcat的日志
apache安装目录下的logs文件夹下就存放这apache的相关日志
access.log文件用于记录apache接收到请求以及响应状态的日志
error.log文件用于记录apache的运行错误
httpd.pid文件用于记录进程pid
mod_jk.log文件用于记录请求转发给tomcat的日志
tomcat的日志:
localhost_access_log.日期.txt文件用于记录tomcat接收到的请求以及响应的状态等,作用于apache的access.log类似
catalina.日期.txt文件用于记录tomcat启动时候控制台的一些信息以及服务端错误信息
localhost.日期.txt文件用于记录站点访问信息,Tomcat下内部代码丢出的日志,文件名localhost.日期.log(jsp页面内部错误的异常,org.apache.jasper.runtime.HttpJspBase.service类丢出的,日志信息就在该文件!)
8.官方文档中对于集群中session repliction的要求:
  1).session中的属性必须全部为实现Serializable
  2).tomcat的server.xml配置文件中的&Cluster&节点的注释去掉
  3).就是用于用于检测当前的响应是否涉及Session数据的更新,如果是则启动Session拷贝操作,这个属性后面会有一个filter属性,filter即过滤不需要Session拷贝操作的内容
  4).如果tomcat在同一个机器上的,那么确保tcpListenerPort端口的唯一性
  5).web.xml中必须添加&distributable/&属性
  6).如果使用mod_jk,那么需要在server.xml中的&Engine/&节点中添加jvmRoute=&tomcat1&属性,事实证明在ajp端口那边添加也是可行的
  7).确保所有的tomcat时钟同步,使用ntp服务器来达成
  8).确保负载均衡器的sticky_session=false已经设置,即设置为非粘性
  1.https://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html
  2./dennisit/p/3370220.html
  3.http://./0152你的位置: >
> CentOS环境下整合Apache和Tomcat
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的,使用的是8080端口,所以整合的目的是为了让Apache和Tomcat共用80端口。
首先检查一下你的系统是否已经安装了jdk
java -version
如果有版本输出,说明已经安装过了,如果没有,就开始以下的操作,我下载的是版本是jdk-7u71-linux-x64
tar zxvf jdk-7u71-linux-x64.tar.gz
#移动解压出来的目录到/usr/local/
mv jdk1.7.0_71/ /usr/local/
#修改环境变量
vim /etc/profile
#在文件末尾添加以下内容
PATH=/usr/local/jdk1.7.0_71/bin:$PATH
export PATH
#让刚才的修改生效
source /etc/profile
#这个时候再试试 java -version 是不是就能看到以下输出了?
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
Java HotSpot(TM) 64-Bit Server VM (build 24.71-b01, mixed mode)
Tomcat的安装
首先按照需求下载对应版本的tomcat源码包
,我这里下载的是 apache-tomcat-7.0.57
tar zxvf apache-tomcat-7.0.57.tar.gz
#给目录改个名字,因为默认的太长了
mv apache-tomcat-7.0.57 tomcat
#移动tomcat目录到/usr/local/
mv tomcat/ /usr/local/
#修改默认启动脚本
cd /usr/local/tomcat/bin
vim catalina.sh
#首先找到CLASSPATH=,改为
CLASSPATH=/usr/local/jdk1.7.0_71/lib/tools.jar:/usr/local/jdk1.7.0_71/lib/dt.jar
#然后在文件的第二行空行插入以下内容,(带#号注释的那行也要):
# chkconfig: 35 85 15
CATALINA_HOME=/usr/local/tomcat
JAVA_HOME=/usr/local/jdk1.7.0_71
JRE_HOME=/usr/local/jdk1.7.0_71
#复制脚本到/etc/init.d/
cp catalina.sh /etc/init.d/tomcat
#给脚本加上可可执行权限
chmod +x /etc/init.d/tomcat
现在你可以试试启动tomcat,通过service tomcat start,访问ip:8080就能看到欢迎页
Apache和Tomcat的整合
我假设你已经安装好了Apache,不会也不要紧,后面会更新搭建LAMP的文章,这里就先跳过。
tar zxvf tomcat-connectors-1.2.40-src.tar.gz
cd tomcat-connectors-1.2.40-src/native
./configure --with-apxs=/usr/local/apache/bin/apxs
make && make install
在/etc/httpd下面建立配置文件mod_jk.conf
vim /etc/httpd/mod_jk.conf
添加以下内容:
JkWorkersFile /etc/httpd/workers.properties
JkLogFile /usr/local/apache/logs/mod_jk.log
JkLogLevel info
JkLogStampFormat “[%a %b %d %H:%M:%S %Y]”
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat “%w %V %T”
JkMount /servlet/* worker1
JkMount /*.jsp worker1
在/etc/httpd下面建立配置文件workers.properties
vim /etc/httpd/workers.properties
添加以下内容:
worker.list=worker1
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
worker.worker1.lbfactor=50
worker.worker1.cachesize=10
worker.worker1.cache_timeout=600
worker.worker1.socket_keepalive=1
worker.worker1.socket_timeout=300
打开f配置文件
vim /etc/httpd/httpd.conf
在空白行插入加载mod_jk的语句:
LoadModule jk_module modules/mod_jk.so
Include /etc/httpd/mod_jk.conf
最后编辑Tomcat的配置文件
vim /usr/local/tomcat/conf/server.xml
在HOST段中加入:
PS:要把两边的空格去掉
然后把/usr/local/tomcat/webapps/ROOT下的WEB-INF目录复制到/usr/local/apache/htdocs/
到此,Apache和Tomcat整合就完成了。
转载请注明: &
与本文相关的文章

我要回帖

更多关于 apache2 tomcat 整合 的文章

 

随机推荐