tomcat集群.docx_第1页
tomcat集群.docx_第2页
tomcat集群.docx_第3页
tomcat集群.docx_第4页
tomcat集群.docx_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Linux平台上搭建apache+tomcat负载均衡集群 | 浏览:687 | 更新:2014-03-03 14:55 1 2 3 4 5 6 7分步阅读 传统的Java Web项目是通过tomcat来运行和发布的。但在实际的企业应用环境中,采用单一的tomcat来维持项目的运行是不现实的。tomcat 处理能力低,效率低,承受并发小(1000左右)。当用户请求较少时,单一的tomcat能够快速响应用户请求,但如果访问量一大,tomcat处理能力跟不上,无法及时响应请求,就会造成用户等待;如果访问量过大,超出tomcat的承受能力,还可能导致tomcat超载故障。 apache是一个web服务器环境程序,可以作为web服务器使用。Apache对并发请求的处理能力较tomcat强,对静态页面(如asp,php,cgi,jsp等)的处理上比tomcat更为迅速,但apache不支持动态网页(需借助tomcat)。 因此实际应用中可以搭建apache+tomcat负载均衡集群,一个apache作为Web服务器,为网站的静态页面请求提供服务;并使用tomcat服务器作为一个Servlet/JSP插件,用于处理网站的动态页面。当用户通过浏览器发出请求时,客户请求首先会发送到apache,如果请求是静态文本则由apache解析,并把结果返回给客户端;如果是动态的请求,如jsp,apache会把解析工作交给tomcat,由tomcat进行解析(这首先要两者现实整合),tomcat解析完成后,结果仍是通过apache返回给客户端。这样就可以达到分工合作,实现负载均衡,提高系统的性能!工具/原料 Linux系统:选用Redhat的开源版本CentOS操作系统(这里用CentOS 5.5版本) JDK:选用版本为jdk1.7.0_45,安装包jdk-7u45-linux-i586.tar.gz Apache:选用版本2.4.7,安装包httpd-2.4.7.tar.gz Tomcat:选用版本7.0.47,安装包apache-tomcat-7.0.47.tar.gz JK:选用版本1.2.37,安装包:tomcat-connectors-1.2.37-src.tar.gz方法/步骤 1. 1找一台计算机做linux服务器,在上面安装CentOS操作系统,可以采用光盘安装、u盘安装等方式进行,网络上有很多相对完整的教程,这里就不做具体阐述了步骤阅读 2. 2在linux服务器上安装CentOS之后,事先将所有软件的安装包上传到linux服务器上,并放置在/software目录下。步骤阅读 3. 3JDK安装(1):如图所示,因为CentOS自带有open jdk,需要将其删除,再重新安装oracle jdk。但如果直接在centOS的“应用程序-添加/删除软件-基本系统-java”中,删除java,与之相关的openoffice等软件,也会自动随之删除,因此,在进行原有的jdk删除之前,最好先安装配置好新的jdk及相应的环境。步骤阅读 4. 4JDK安装(2):安装下载的oracle jdk。 (1)在/usr/local目录下新建Java文件夹,并将安装包从/software目录拷贝到/usr/local/Java目录下(图形界面下直接“复制”-“粘贴”即可)。 #cp /software/jdk-7u45-linux-i586.tar.gz/usr/local/Java (2)定位到文件夹/usr/local/Java。 #cd /usr/local (3)解压安装包到当前目录。 #tar -zxvf jdk-7u45-linux-i586.tar.gz (4)配置java的环境变量。为了系统中所有用户都能使用java环境,修改系统中的环境配置文件/etc/profile。在文件最后添加下列语句: export JAVA_HOME=/usr/local/Java/jdk1.7.0_45 export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin (5)修改完成以后,logout再重新登陆,或#source /etc/profile,使文件立即生效。5. 5JDK安装(3):查看与系统自带open jdk有关的包。在终端中输入“rpm -qa|grep gcj”,查看gcj的版本号,在这里得到的结果如图所示:步骤阅读 6. 6JDK安装(4):卸载系统自带open jdk。 在终端中输入“yum -y remove javajava-1.4.2-gcj-compat--40jpp.115”,然后等待,等待系统卸载完自带的jdk。最终在终端中显示“Complete!”,卸载完成。7. 7JDK安装(5):卸载系统自带open jdk时出现问题及解决方案。【问题】使用yum安装或卸载软件,出现如图所示的提示错误。 原因是系统进程已经有一个yum的update进程在运行了。可用ps -ef | grep update查看进程。解决办法是在命令行输入下面两条命令: #rm -f/var/run/yum.pid /sbin/service #yum-updatesdrestart然后重新执行yum的删除命令即可。步骤阅读 8. 8JDK安装(6):查看jdk版本。 在命令行中输入java -version命令可查看安装的jdk版本。如果显示出jdk安装的版本信息则说明jdk安装成功。 如果出现如图所示的错误信息,则是因为系统的selinux的设置问题,即开启了selinux服务。解决办法如下:(1)打开/etc/selinux/config;(2)把selinux=enforcing改为selinux=disabled;(3)重启linux。步骤阅读 9. 9Apache安装(1):如下图所示,使用# rpm -qa|grep httpd,查看与httpd相关软件包。发现CentOS自带有apache,版本为2.2.3。因此在安装我们需要的apache之前,需要卸载CentOS自带的apache。步骤阅读 10. 10Apache安装(2):卸载CentOS自带Apache。 上一步我们已经查看了与httpd相关的软件包,这一步要删除删除httpd。在命令行中使用:# rpm -e httpd。 如果出现如图所示错误,说明还有一个相关的软件包没有删除,清除之,即:# rpm -e gnome-user-share。步骤阅读 11. 11Apache安装(3):再次删除httpd:# rpm -e httpd。 可以使用参数-nodeps的意思就是不管各个程序包间的依赖关系。#rpm -e -nodeps httpd /这样不需要删除gnome-user-share了。12. 12Apache安装(4):重新安装自己下载的Apache(1)将安装包从/software目录拷贝到/usr/local目录下。 #cp /software/httpd-2.4.7.tar.gz /usr/local(2)定位到文件夹/usr/local。 #cd /usr/local(3)解压安装包到当前目录。 #tar -zxvf httpd-2.4.7.tar.gz(4)定位到文件夹/usr/local /httpd-2.4.7。 #cd httpd-2.4.7(5)设置安装路径和需要编译的模块。 # ./configure-prefix=/usr/local/apache -enable-so -enable-proxy -enable-proxy_http=shared-enable-module=so -enable-mods-shared=all -enable-proxy-ajp=shared -enable-proxy-balancer -with-mpm=worker/备注:prefix定义apache的安装路径(6)编译通过,继续安装apache。 #make & makeinstall13. 13Apache安装(5):apache安装的check过程中出错,如图所示:APR not found。原因是没有安装apr。在/usr/local目录下安装apr: #tar -zxvf apr-1.5.0.tar.gz #cd apr-1.5.0 #./configure -prefix=/usr/local/apr #make #make install安装完成后再来configure apache。步骤阅读 14. 14Apache安装(6):apache安装的check过程中出错,如图所示:APR-util not found。原因是没有安装apr-util。在/usr/local目录下安装apr-util: #tar -zxvf apr-util-1.5.3.tar.gz #cd apr-util-1.5.3 #./configure-prefix=/usr/local/apr-util -with-apr=/usr/local/apr #make #make install安装完成后,在apache的./configure 最后增加-with-apr=/usr/local/apr -with-apr-util=/usr/local/apr-util,重新configure apache。步骤阅读 15. 15Apache安装(7):apache安装的check过程中出错,如图所示,原因是没有安装pcre。在/usr/local目录下安装pcre: # tar -zxvf pcre-8.32.tar.gz #cd pcre-8.32 #./configure-prefix=/usr/local/pcre #make #make install安装完成后,在apache的./configure 最后增加./configure 时加上参数 -with-apr=/usr/local/apr/ -with-apr-util=/usr/local/apr-util/-with-pcre=/usr/local/pcre,重新configure apache。步骤阅读 16. 16Apache安装(8):编译通过,继续安装apache。#make & makeinstall 。17. 17Apache配置及测试(1):安装完毕后,在测试启动apache之前先修改/apache/conf /httpd.conf。 (1)查找ServerName,打开注释,将ServerName值改为对应的IP地址。 (2)在DirectoryIndex中添加 index.jsp。 (3)以下2个注释去掉: #Include conf/extra/httpd-mpm.conf #Include conf/extra/httpd-default.conf步骤阅读 步骤阅读 18. 18Apache配置及测试(2):保存httpd.conf文件的修改,启动apache服务。 # /usr/local/apache/bin/apachectl start 浏览器访问,提示无法连接。说明apache没有成功启动。查看错误日志(/apache/logs/error_log),发现如图错误信息。原因是httpd.conf里面的mod_slotmem_shm.so没有加载。将httpd.conf 文件中的“#LoadModule slotmem_shm_module modules/mod_slotmem_shm.so”前的“#”去掉即可。步骤阅读 19. 19Apache配置及测试(3):(1)重新启动apache并查看httpd是否运行。 # /usr/local/apache/bin/apachectl start # ps-ef |grephttpd(2)浏览器测试apache。在浏览器中访问。页面出现“Its Works!”字样即为成功。步骤阅读 步骤阅读 20. 20Apache的启动和关闭:在/usr/local/apache/bin下有可执行程序。(1)启动apache服务:#/usr/local/apache/bin/apachectl start(2)关闭apache服务:# /usr/local/apache/bin/apachectlstop(3)重启apache服务:# /usr/local/apache/bin/apachectl restart21. 21Tomcat安装、测试及配置(1):安装tomcat(1)将安装包从/software目录拷贝到/usr/local目录下(图形界面下直接“复制”-“粘贴”即可)。 #cp /software/apache-tomcat-7.0.47.tar.gz/usr/local(2)定位到文件夹/usr/local/。 #cd /usr/local(3)解压安装包到当前目录。 #tar -zxvf apache-tomcat-7.0.47.tar.gz(4)修改配置文件,增加java的环境变量信息。在/usr/local/apache-tomcat-7.0.47/bin下有文件catalina.sh 在文件头部增加下列信息: exportJAVA_HOME=/usr/local/Java/jdk1.7.0_45 exportCLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib exportPATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin(5)启动tomcat,结果如下图所示。 #/usr/local/apache-tomcat-7.0.47/bin/startup.sh步骤阅读 22. 22Tomcat安装、测试及配置(2):浏览器测试tomcat是否启动测试tomcat。打开浏览器访问:8080,可以看到tomcat的启动欢迎页面,证明tomcat配置正确。步骤阅读 23. 23Tomcat安装、测试及配置(3):tomcat的启动和关闭在/usr/local/apache-tomcat-7.0.47/bin下有可执行程序。(1)启动tomcat服务: # /usr/local/apache-tomcat-7.0.47/bin/startup.sh # /usr/local/apache-tomcat-7.0.47/bin/catalina.sh start(2)关闭tomcat服务: # /usr/local/apache-tomcat-7.0.47/bin/shutdown.sh # /usr/local/apache-tomcat-7.0.47/bin/catalina.sh stop24. 24Tomcat安装、测试及配置(4):java web项目发布(1)用eclipse将编译好的Java Web项目导出成war包。(2)将war包放置到linux服务器上的tomcat的webapps目录下。如本次配置放在/usr/local/apache-tomcat-7.0.47/webapps下。(3)启动tomcat后,tomcat会自动将war包解压并运行Java Web项目。(4)打开浏览器,输入:8080/SessionTest(项目名),就可以访问项目。25. 25Tomcat安装、测试及配置(5):设置Tomcat默认访问项目 打开/usr/local/apache-tomcat-7.0.47/conf/server.xml,在标签之间加入下面的语句: 标签的docBase值为想要默认访问的项目名称,此处为SessionTest。文件修改后如图所示。然后重新启动tomcat,打开浏览器,输入:8080,就可以访问SessionTest项目。步骤阅读 26. 26mod_jk安装: mod_jk的作用:连接apache和tomcat集群的中间件。 mod_jk的安装包:tomcat-connectors-1.2.37-src.tar.gz。安装步骤如下:(1)将安装包从/software目录拷贝到/usr/local目录下(图形界面下直接“复制”-“粘贴”即可)。 #cp /software/tomcat-connectors-1.2.37-src.tar.gz /usr/local(2)定位到文件夹/usr/local/。 #cd /usr/local(3)解压安装包到当前目录。 # tar -zxvf tomcat-connectors-1.2.37-src.tar.gz(4)编译安装mod_jk。 #cd /tomcat-connectors-1. 2.37-src/native # chmod 755buildconf.sh # ./buildconf.sh # ./configure-with-apxs=/usr/local/apache/bin/apxs # make # make install(5)将/tomcat-connectors-1.2.37/apache-2.0下的mod_jk.so文件拷贝到apache安装目录下的modules文件夹下面。 # cp ./apache-2.0/mod_jk.so/usr/local/apache/modules/27. 27负载均衡集群配置(1):修改Tomcat/conf 路径下的server.xml。 修改节点值,是关于使用ajp连接apache和tomcat时的配置。修改成如下形式: 注意:如果一台机器上同时运行多个tomcat,一定要将每个tomcat对应的Connector标签的port端口设为不同的值28. 28负载均衡集群配置(2):修改Tomcat/conf 路径下的server.xml。 修改的配置。将的注释打开,为安装的tomcat命名,即修改jvmRoute的值为“tomcat实例名”(不同的tomcat赋予不同值,此处安装了两个tomcat,分别命名为tomcat1和tomcat2),修改结果参见下图:步骤阅读 29. 29负载均衡集群配置(3):修改Tomcat/conf 路径下的server.xml。在或元素下添加以下内容均可: !- - 30. 30负载均衡集群配置(4):修改Tomcat/conf 路径下的server.xml。修改节点信息。MembershipclassName=org.apache.catalina.tribes.membership.McastService bind= address=9 #广播地址,同一组tomcat集群一样 port=45564 #同一组tomcat集群一样 frequency=500 dropTime=3000/ReceiverclassName=org.apache.catalina.tribes.transport.nio.NioReceiver address=172.*.*.201 #修改为本机IP地址 port=5000 #(tomcat默认可以检测到40004100之间的端口) selectorTimeout=100 maxThreads=6/31. 31负载均衡集群配置(5):修改待发布项目的web.xml 需要发布的项目放在tomcat的webapps文件夹下,在每个待发布项目的web.xml末尾的标签里添加,确保session能够复制。如下图所示。步骤阅读 32. 32负载均衡集群配置(6):Apache配置修改 httpd.conf在apache的conf下的httpd.conf 文件尾部追加以下内容: #加载mod_jk Module LoadModule jk_module modules/mod_jk.so #指定perties文件路径 JkWorkersFile/usr/local/apache/conf/perties #指定jk logs文件存放位置 JkLogFile/usr/local/apache/logs/mod_jk.log #Set the jk log level debug/error/info JkLogLevel info #Select the log format JkLogStampFormat %a %b %d%H:%M:%S %Y #JkOptions indicate to send SSL KEYSIZE, JkOptions +ForwardKeySize +ForwardURICompat-ForwardDirectories #JkRequestLogFormat set the requestformat JkRequestLogFormat %w %V %T %q %U%R #JkShmFile to put logs JkShmFile/usr/local/apache/logs/mod_jk.shm #指定哪些请求交给tomcat处理,哪些请求交给apache处理 #注意: loadbalancer 为在pertise里指定的负载分配控制器 JkMount /*.jsp loadbalancer #所有的jsp都交给tomcat处理33. 33负载均衡集群配置(7):Apache配置创建perties httpd.conf的最后添加的配置中perties文件是不存在的,需要我们自己在apache/conf路径下创建。perties文件用于对负载均衡的负载器worker(即tomcat)进行具体的登记,此处的2个tomcat就作为2个worker被登记在这个文件中。perties具体配置如下:#perties# in unix, weuse forward slashes:ps=/# workers 列表worker.list=tomcat1,tomcat2, loadbalancer, status#-# 第一个tomcat#-worker.tomcat1.port=8009 #对应tomcat的server.xml中配置的ajp13端口号worker.tomcat1.host= #tomcat1的主机地址,如不为本机,请填写IP地址worker.tomcat1.type=ajp13 #定向包协议worker.tomcat1.lbfactor=1 #server的负载分配权重,值越高,分得的请求越多#以下为非必要配置,这部分配置tomcat2的配置同tomcat1#worker.tomcat1.cachesize=1000 #配置tomcat的jk连接缓存大小 (非必要)#worker.tomcat1.cachesize_timeout=600 # (非必要)#worker.tomcat1.reclycle_timeout=300 # (非必要)#worker.tomcat1.socket_keepalive=1 #防止防火墙切断未激活的网络连接(非必要)#worker.tomcat1.socket_timeout=300 #(非必要)#worker.tomcat1.local_worker=1 # (非必要)#worker.tomcat1.retries=3 # (非必要)#-# 第二个tomcat#-worker.tomcat2.port=8009worker.tomcat2.host=172.*.*.202 #tomcat2的主机IP地址worker.tomcat2.type=ajp13worker.tomcat2.lbfactor=1#-# load balancerworker -负载均衡控制器# -worker.loadbalancer.type=lbworker.loadbalancer.balanced_workers=tomcat1,tomcat2 #指定分担请求的tomcatworker.loadbalancer.sticky_session=1 #设置为粘性sessionworker.loadbalancer.sticky_session_force=0 #设置当多次请求未响应,请求将转发worker.status.type=status# end perties34. 34负载均衡集群配置(8):Apache配置设置apache对项目的访问路径 修改/apache/conf/目录下的httpd.conf文件中的DocumentRoot和Directory值,将文件访问路径定位到tomcat的webapps文件夹,即待发布项目的存放位置,修改结果如下:DocumentRoot/usr/local/apache-tomcat-7.0.47/webappsRequire all granted Orderallow,denyAllow from all如此对apache的修改完成,加之tomcat设置了默认访问项目,此时就可以实现直接通过apache所在主机的IP地址来访问项目。(实际配置中,是否实现IP地址直接访问以实际需求为准)35. 35负载均衡集群Session测试(1):创建测试工程SessionTest 新建一个Java Web工程SessionTest,在工程下新建index.jsp,文件内容如下: Session Test k

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论