Linux搭建Apache+Tomcat环境.docx
《Linux搭建Apache+Tomcat环境.docx》由会员分享,可在线阅读,更多相关《Linux搭建Apache+Tomcat环境.docx(12页珍藏版)》请在冰豆网上搜索。
Linux搭建Apache+Tomcat环境
Linux搭建Apache+Tomcat环境
使用手册
(仅供内部使用)
V1.0
北京宏泰博科信息技术有限公司
版权所有不得复制
目录
目录1
1引言3
1.1编写目的3
1.2项目背景3
1.3定义3
1.3.1集群(Cluster)3
1.3.2负载均衡(LoadBalance)3
1.4参考资料3
1.5变更历史3
2技术介绍4
2.1技术目标4
2.2网络架构4
2.3软件架构4
3详细步骤4
3.1安装JDK4
3.1.1jdk-6u22-linux-i586.bin4
3.1.2配置环境变量4
3.1.3测试Java是否安装成功5
3.2安装Tomcat5
3.2.1apache-tomcat-5.5.33.zip5
3.2.2配置环境变量5
3.2.3测试Tomcat是否安装成功5
3.3安装Apache6
3.3.1httpd-2.2.19.tar.gz6
3.3.2测试Apache是否安装成功6
3.4集群和负载均衡的配置7
3.4.1修改httpd.conf7
3.4.2安装mod_jk.so8
3.4.3建立mod_jk.conf文件8
3.4.4建立workers.properties文件8
3.4.5修改httpd-vhosts.conf文件10
#JK211
#AJP-No.111
#AJP-No.211
域名绑定12
3.5综合测试Apache+Tomcat12
4总结12
4.3、设置Apache和Tomcat随系统启动而自动启动:
12
引言
1.1编写目的
本说明手册为了阐述Linux搭建Apache+Tomcat环境,并详细介绍Tomcat的集群和负载均衡配置而编写。
届时介绍域名的绑定,RedHat和Ubuntu中随系统自动启动个软件的配置方法。
1.2项目背景
在Linux(RedHatEnterprise4)上整合Apache和Tomcat,并实现Tomcat的集群和负载均衡。
这里是在同一台服务器上弄的集群和负载均衡,以两个Tomcat为例,如果是两个以上的Tomcat,配置的原理是一样的,只需要将各个Tomcat的端口号设置成不一样即可。
1.3定义
1.3.1集群(Cluster)
是一组独立的计算机系统构成一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。
应用程序可以通过网络共享内存进行消息传送,实现分布式计算机。
1.3.2负载均衡(LoadBalance)
即把负载压力根据某种算法合理分配到集群中的每一台计算机上,以减轻主服务器的压力,降低对主服务器的硬件和软件要求。
1.4参考资料
文件名称
出处
Apache+Tomcat整合
互联网
Tomcat集群与负载均衡区别以及特性
http:
//xy-
ubuntu配置开机启动vnc
1.5变更历史
内容
变更原因
变更日期
人员
创建文档
首次创建
2011-08-04
何胜平
新增知识点
AJP-No.2:
阐述使用AJP配置负载均衡
2011-08-23
何胜平
新增知识点
如何域名绑定
2011-08-25
何胜平
新增知识点
ubuntu配置开机启动
2011-08-25
何胜平
技术介绍
技术目标
集成Apache和Tomcat,实现Tomcat的集群和负载均衡。
网络架构
采用局域网或单机环境。
硬件设备,服务器采用台式机或笔记本电脑,最低配置,内存512M以上、硬盘10G以上。
客户端采用台式机或笔记本。
软件架构
软件平台类型
软件平台选型
网络操作系统
RedHatEnterpriseLinux4
Http服务器
Apache2.2.19
WEB应用服务
Tomcat5.5.33
MOD_JK
tomcat-connectors-1.2.31-src.tar.gz
详细步骤
3.1安装JDK
jdk-6u22-linux-i586.bin
更改权限chmodu+xjdk-6u22-linux-i586.bin
执行./jdk-6u22-linux-i586.bin命令进行安装,会在当前目录下生成jdk1.6.0_22文件夹,我这里要把它移动到/usr/local/java/目录下。
配置环境变量
vi/etc/profile
在最后面加上
exportJAVA_HOME=/usr/local/java/jdk1.6.0_22
exportCLASSPATH=.:
$JAVA_HOME/lib
exportPATH=$JAVA_HOME/bin:
$PATH
重新加载环境变量:
source/etc/profile
测试Java是否安装成功
输入java-version,如果出现这个信息,就说明JDK安装成功了:
javaversion"1.6.0_22"
Java(TM)SERuntimeEnvironment(build1.6.0_22-b04)
JavaHotSpot(TM)ClientVM(build17.1-b03,mixedmode,sharing)
3.2安装Tomcat
3.2.1apache-tomcat-5.5.33.zip
我这里用的Tomcat版本是apache-tomcat-5.5.33.zip,把它解压到/usr/local,为了便于区分,我把它重命名为tomcat1,再拷贝一份放于同级目录下重命名为tomcat2,并将tomcat2/conf/server.xml中的端口号修改成与tomcat1端口不一致,例如Serverport="8006"、HTTP/1.1Connectorport="8081"、AJP1.3Connectorport="8010"。
3.2.2配置环境变量
一台服务器上如果有多个tomcat,只需要配置一个tomcat的环境变量即可,这里以tomcat1为例,配置方法如下:
vi/etc/profile
在最后面加上:
exportTOMCAT_HOME=/usr/local/tomcat1
重新加载环境变量:
source/etc/profile
3.2.3测试Tomcat是否安装成功
分别到Tomcat1和Tomcat2的bin目录下为所有后缀为sh的文件赋拥有者有执行的权限,并分别启动Tomcat1和Tomcat2,在浏览器中输入http:
//服务器IP:
8080,和http:
//服务器IP:
8081看是否正常显示Tomcat的首页,如果正常显示网页,则表示两个Tomcat已经正确安装完毕。
为了加以区别,我们在Tomcat1和Tomcat2的默认首页中分别加上“ThisistheindexofTomcat1”和“ThisistheindexofTomcat2”的字样,如下图所示:
3.3安装Apache
本文档中使用的Apache是目前最新版本:
httpd-2.2.19.tar.gz
3.3.1httpd-2.2.19.tar.gz
将Apache解压tar-zxvfhttpd-2.2.19.tar.gz,解压后到新解压的目录里面cdhc``ttpd-2.2.19,运行一下命令:
./configure--prefix=/usr/local/apache2--enable-so--enable-mods-shared=all--enable-deflate--enable-rewrite--enable-proxy--enable-proxy-connect--enable-proxy-ftp--enable-proxy-http--enable-proxy-scgi--enable-proxy-ajp--enable-proxy-balance
将其安装在/usr/local/apache2目录下,你也可以选择安装在其他目录,只要更改--prefix的值即可。
运行完上面的configure命令后,直接输入make&&makeinstall命令就可以开始安装Apache啦。
3.3.2测试Apache是否安装成功
启动下Apache:
/usr/local/apache2/bin/apachectl-kstart,在浏览器中输入http:
//服务器IP地址,如看到“Itworks!
”则说明Apache成功安装。
3.4集群和负载均衡的配置
下面我来说一说如何配置Tomcat的集群和负载均衡。
Apache+Tomcat的集群和负载均衡目前有两种方式(我所了解的,如果不对请大家指正,3Q),一种是使用JK2,另一种是AJP,下面我会一一讲解这两种配置。
网络上说JK2发展的历史悠久,技术成熟,目前很多大型网站都是用这种方式进行配置的,而AJP是最新出来的技术,还不善成熟,所以建议尽量使用JK2进行配置——这个不代表个人观点,具体使用哪种,请大家自行选择。
3.4.1修改httpd.conf
vi/usr/local/apache2/conf/httpd.conf
Ø找到#Includeconf/extra/httpd-vhosts.conf把前面的#去掉(我这里配置虚拟主机是为了apache还可以干别的事,节约资源)
Ø找到DocumentRoot"/usr/local/apache2/htdocs"并把它注释掉#DocumentRoot"/usr/local/apache2/htdocs"
Ø找到
OptionsFollowSymLinks
AllowOverrideNone
Orderdeny,allow
Denyfromall
注释掉(这样我们可以在httpd-vhosts.conf里自己配置了)
#
#OptionsFollowSymLinks
#AllowOverrideNone
#Orderdeny,allow
#Denyfromall
#
Ø在最后加入
#Includemod_jk'sspecificconfigurationfile
Includeconf/mod_jk.conf
3.4.2安装mod_jk.so
解压tomcat-connectors-1.2.31-src.tar.gz,到解压目录下的tomcat-connectors-1.2.31-src\native中,运行如下命令:
./configure--with-apxs=/usr/local/apache2/bin/apxs
上面命令运行完后再运行:
make&&makeinstall
运行完上面命令后,mod_jk.so将自动安装到Apache的modules目录中,如果Apache的modules中没找到mod_jk.so,请到tomcat-connectors-1.2.31-src/native/apache-2.0/目录下查找,并复制到Apache的modules目录中即可。
3.4.3建立mod_jk.conf文件
主要定义mod_jk模块的位置以及mod_jk模块的连接日志设置,还有定义worker.properties文件的位置。
vi/usr/local/apache2/conf/mod_jk.conf
粘贴如下代码:
LoadModulejk_modulemodules/mod_jk.so
JkWorkersFileconf/workers.properties
JkLogFilelogs/mod_jk.log
JkLogLevelinfo
JkLogStampFormat"[%a%b%d%H:
%M:
%S%Y]"
JkRequestLogFormat"%w%V%T"
3.4.4建立workers.properties文件
定义worker的参数,主要是连接tomcat主机的地址和端口信息。
如果Tomcat与apache不在同一台机器上,或者需要做多台机器上tomcat的负载均衡只需要更改workers.properties文件中的相应定义即可。
vi/usr/local/apache2/conf/workers.properties
粘贴如下代码:
#server列表
worker.list=controller,tomcat1,tomcat2
#tomcat1(ajp13端口号,在tomcat下server.xml配置,默认8009)
worker.tomcat1.port=8009
#tomcat的主机地址,如不为本机,请填写ip地址
worker.tomcat1.host=localhost
worker.tomcat1.type=ajp13
#server的加权比重,值越高,分得的请求越多
worker.tomcat1.lbfactor=1
#tomcat2
worker.tomcat2.port=8010
worker.tomcat2.host=localhost
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor=1
#controller(负载均衡控制器)
worker.controller.type=lb
#指定分担请求的tomcat
worker.controller.balanced_workers=tomcat1,tomcat2
#worker.controller.sticky_session=true
说明:
此文件配置了2个tomcat服务器进行负载均衡处理,sticky_session表示是否将对SESSIONID的请求路由回到相同的Tomcatworker。
如果属性值不为0,它将被设置为JK_TRUE,session将是粘性的,即SESSIONID的请求路由回到相同的Tomcatworker;当Tomcat正使用能够跨越多个Tomcat实例持久化session数据的SessionManager时,它将被设置为JK_FALSE。
我们服务器上用不到session复制,用的是cookie的形式,所以这块注释掉不用配置。
3.4.5修改httpd-vhosts.conf文件
vi/usr/local/apache2/conf/extra/httpd-vhosts.conf
删除以下两段
80>
ServerAdminwebmaster@dummy-
DocumentRoot"/usr/local/apache2/docs/dummy-"
ServerNamedummy-
ServerAliaswww.dummy-
ErrorLog"logs/dummy--error_log"
CustomLog"logs/dummy--access_log"common
80>
ServerAdminwebmaster@dummy-
DocumentRoot"/usr/local/apache2/docs/dummy-"
ServerNamedummy-
ErrorLog"logs/dummy--error_log"
CustomLog"logs/dummy--access_log"common
修改成以下代码
80>
ServerName*
Orderdeny,allow
Denyfromall
#JK2
80>
ServerName192.168.9.210
ErrorLog"logs/192.168.9.210-error.log"
CustomLog"logs/192.168.9.210-access_log"common
RewriteEngineon
JkMount/*controller#负载均衡
#AJP-No.1
80>
ProxyPreserveHostOn
ServerName192.168.9.210
ErrorLog"logs/192.168.9.210-error.log"
CustomLog"logs/192.168.9.210-access_log"commonProxyPass/ajp:
//localhost:
8009/#或ProxyPass/http:
//localhost:
8080/
ProxyPassReverse/ajp:
//localhost:
8009/#或ProxyPassReverse/http:
//localhost:
8080/
#AJP-No.2
//proxy>
BalancerMemberajp:
//localhost:
8009/loadfactor=1
BalancerMemberajp:
//localhost:
8010/loadfactor=1
#或BalancerMemberhttp:
//localhost:
8080/loadfactor=1
#或BalancerMemberhttp:
//localhost:
8081/loadfactor=1
80>
ProxyPreserveHostOn
ServerName192.168.9.210
ErrorLog"logs/192.168.9.210-error.log"
CustomLog"logs/192.168.9.210-access_log"common
ProxyPass/balancer:
//proxy/
ProxyPassReverse/balancer:
//proxy/
域名绑定
将ServerName192.168.9.210后面的ip地址改成要绑定的域名即可。
3.5综合测试Apache+Tomcat
到目前为止,Apache和Tomcat的配置就算完成了,我们依次启动Apache和Tomcat群,在浏览器中输入http:
//服务器IP,如果能正确显示Tomcat首页这就集成成功了。
期间,如果我们反复刷新浏览器,看到页面交替显示“ThisistheindexofTomcat1”和“ThisistheindexofTomcat2”——可参考3.2.3章节图示,那么Tomcat的负载均衡就算配置成功啦!
总结
4.1、ServerName192.168.9.210中的ip地址可以更改成需要绑定的域名即可。
4.2、在configureApache的时候,从网上找了很多资料都不能自动编译出modules下的so文件,期间找到一个说能编译出so文件的配置,可我用的时候编译出的都是些后缀为lo和c的文件,找了很多资料和方法都没能解决,最后我只能看configure的帮助文档,一行行的看并一个个配置参数的尝试,并最终编译出了so文件。
4.3、设置Apache和Tomcat随系统启动而自动启动:
4.3.1RedHat的配置
i.随系统启动的方法有很多种,这里为大家介绍的是我所摸索出来的一种,个人认为比较简单,至少不像网络上介绍的要再为每个Tomcat设置一遍环境变量:
ii.vi/etc/rc.d/rc.local,在最后加入以下命令
source/etc/profile
/usr/local/apache2/bin/apachectl-kstart
/usr/local/tomcat1/bin/startup.sh
/usr/local/tomcat2/bin/startup.sh
4.3.2Ubuntu的配置
Ubuntu系统的配置与之不同:
vi/etc/init.d/javaweb,并为javaweb赋执行权限。
粘贴如下内容:
#!
/bin/bash
source/etc/profile
/usr/local/apache2/bin/apachectl-kstart
/usr/local/tomcat1/bin/startup.sh
/usr/local/tomcat2/bin/startup.sh
然后运行update-rc.djavawebdefaults,配置完成!
4.4本文所涉及到的方法和配置有可能有些不足甚至是错误的地方,欢迎大家踊跃拍砖,为提高服务器综合效率而不断努力!