Apache2.4+Tomcat7集群搭建
一、安装jdk、Tomcat、Apache
1.安装jdk1.7
cd /home/java/software #把软件下载到/home/java/software目录下,将应用安装到/home/java目录下。 wget http://download.oracle.com/otn/java/jdk/7u80-b15/jdk-7u80-linux-x64.tar.gz tar -zxvf jdk-7u80-linux-x64.tar.gz mv jdk1.7.0_80 ../jdk1.7
2.安装Tomcat7
wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.63/bin/apache-tomcat-7.0.63.tar.gz tar -zxvf apache-tomcat-7.0.63.tar.gz mv apache-tomcat-7.0.63 ../Tomcat7
vim /etc/profile #在文件尾部加入如下内容: export JAVA_HOME=/home/java/jdk1.7 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar source /etc/profile #使修改生效
4.给Tomcat设置JRE_HOME和JAVA_OPTS
cd /home/java/Tomcat7 vim bin/catalina.sh #加入如下内容: #JRE_HOME JRE_HOME=/home/java/jdk1.7/jre export JRE_HOME #JAVA_OPTS JAVA_OPTS="-Xms1024m -Xmx1024m" #设置Java运行内容为1024M export JAVA_OPTS
5.设置Tomcat编码
vim conf/server.xml #在Connector标签里加入URIEncoding="UTF-8" <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000"redirectPort="8443" URIEncoding="UTF-8"/> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8"/>
6.安装Apache要指定apr、apr-util和pcre,所以要先安装这三个软件再安装apache。
#1.安装apr cd /home/java/software #把软件下载到/home/java/software目录下,将应用安装到/home/java目录下。 wget http://mirrors.hust.edu.cn/apache//apr/apr-1.5.2.tar.gz tar -zxvf apr-1.5.2.tar.gz cd apr-1.5.2 ./configure --prefix=/home/java/apr make make install cd .. #2.安装apr-util wget http://mirrors.hust.edu.cn/apache//apr/apr-util-1.5.4.tar.gz tar -zxvf apr-util-1.5.4.tar.gz cd apr-util-1.5.4 ./configure --prefix=/home/java/apr-util --with-apr=/home/java/apr make make install cd .. #3.安装pcre wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.37.tar.gz tar -zxvf pcre-8.37.tar.gz cd pcre-8.37 ./configure --prefix=/home/java/pcre make make install cd .. #4.安装apache wget http://mirrors.cnnic.cn/apache//httpd/httpd-2.4.16.tar.gz tar -zxvf httpd-2.4.16.tar.gz httpd-2.4.16 ./configure --prefix=/home/java/Apache2.4 --with-apr=/home/java/apr --with-apr-util=/home/java/apr-util --with-pcre=/home/java/pcre make make install #5.默认配置的httpd就可以启动了,但会报httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message的警告,所以要在httpd.conf里指定ServerName。 cd /home/java/Apache2.4 vim conf/httpd.conf #加入如下内容: ServerName localhost:80
二、安装jk
cd /home/java/software #把软件下载到/home/java/software目录下,将应用安装到/home/java目录下。 wget http://apache.fayea.com/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.40-src.tar.gz tar -zxvf tomcat-connectors-1.2.40-src.tar.gz cd tomcat-connectors-1.2.40-src/native/ ./configure --with-apxs=/home/java/Apache2.4/bin/apxs --with-java-home=/home/java/jdk1.7 make make install
三、配置集群
1.配置jk_module模块,vim conf/httpd.conf增加如下内容
LoadModule jk_module modules/mod_jk.so <IfModule jk_module>JkWorkersFile conf/workers.propertiesJkMount /* controller #所有网页通过controller处理JkMount /jkstatus jkstatus #访问http://IP/jkstatus来查看jkstatusJkLogFile logs/mod_jk.logJkLogLevel info </IfModule> <Location /jkstatus>Options MultiViewsAuthType BasicAuthName "Auther Center"AuthUserFile conf/.htpasswd #认证用户存放文件require valid-user granted #只有认证用户才可以访问 </Location> 将LoadModule rewrite_module modules/mod_rewrite.so前面#去掉。
2.在conf目录下vim workers.properties加入如下内容:
worker.list=controller,jkstatus #========tomcat1======== worker.tomcat1.port=8009 #指定tomcat1服务器AJP的端口,默认为8009 worker.tomcat1.host=192.168.1.100 #指定tomcat1服务器IP或域名 worker.tomcat1.type=ajp13 #指定tomcat1与apache AJP通讯协议 worker.tomcat1.lbfactor=1 #指定负载平衡因数,只有启用了负载平衡才有用. #========tomcat2======== worker.tomcat2.port=8009 worker.tomcat2.host=192.168.1.200 worker.tomcat2.type=ajp13 worker.tomcat2.lbfactor=1 #========controller负载平衡控制器======== worker.controller.type=lb #指定controller类型 worker.controller.balance_workers=tomcat1,tomcat2 #指定负载平衡的tomcat worker.controller.sticky_session=1 #指定是否粘性session worker.jkstatus.type=status worker.jkstatus.read_only=1 #指定jkstatus为只读方式
3.修改每个tomcat的conf/server.xml
<Engine name="Catalina" defaultHost="localhost" jvmRoute="Tomcat1"> <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="8"><Channel className="org.apache.catalina.tribes.group.GroupChannel"><Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"address="auto"port="4001"autoBind="100"selectorTimeout="5000"maxThreads="6"/></Channel> </Cluster>
4.修改web应用里面WEB-INF目录下的web.xml文件,加入标签
<distributable/>
直接加在</web-app>之前就可以了
做tomcat集群必须需要这一步,否则用户的session就无法正常使用。
5.添加jkstatus访问用户
bin/htpasswd -c conf/.htpasswd admin #在conf目录建立.htpasswd文件并创建admin用户。 #之后会让你输入两次新用户admin的密码,最后通过[ls -al]就可以看到生成的密码文件了(它是隐藏文件,需要-a才能看到) #第一次建立.htpasswd文件时候需要-c,以后添加其他用户时则不需要,如果加上-c则会把.htpasswd文件替换掉。 bin/htpasswd -m conf/.htpasswd admin #修改admin用户登录密码 bin/htpasswd -D conf/.htpasswd admin #删除admin用户
四、启动Tomcat和Apache
cd /home/java/Tomcat7 bin/startup.sh #启动Tomcat bin/shutdown.sh #关闭Tomcat cd /home/java/Apache2.4 bin/apachectl start #启动Apache bin/apachectl stop #关闭Apache
五、参考文档
http://tomcat.apache.org/connectors-doc/reference/workers.html
http://tomcat.apache.org/tomcat-7.0-doc/cluster-howto.html
转载于:https://blog.51cto.com/liyong0802/1679055
相关文章:
一种清除windows通知区域“僵尸”图标的方案——XP系统解决方案
XP下“僵尸”图标的解决方案 从《一种清除windows通知区域“僵尸”图标的方案——问题分析》(以后简称《问题分析》)一文中分析的通知区域结构可以看出,XP的通知区域结构是相对简单的。如果我们解决了XP下的问题,那么Win7上的问题…

《评人工智能如何走向新阶段》后记(再续12)
由AI科技大本营下载自视觉中国151. 新一代人工智能研究方向: (1)研究新一代人工智能基础理论(机理、模型和算法);(2)研发面向需求的共性技术(以神经网络和算法为核心、数据和硬件为基…

正则表达式测试工具 Regex Tester 的使用方法
2019独角兽企业重金招聘Python工程师标准>>> 正则表达式测试工具“RegexTester”,下载地址:http://www.oschina.net/p/regextester 一、关于本文 今天的工作中遇到了一些正则表达式,我需要检验它们是否正确,不过我对自…
一种清除windows通知区域“僵尸”图标的方案——Windows7系统解决方案
Windows7下“僵尸”图标的解决方案 从《一种清除windows通知区域“僵尸”图标的方案——问题分析》(以后简称《问题分析》)一文中分析的通知区域结构可以看出,Windows7的通知区域比XP通知区域多出了一个“临时”系统通知区域(转载…

《评人工智能如何走向新阶段》后记(再续13)
由AI科技大本营下载自视觉中国161. 引自美国科技媒体TNW记者对美欧企业主管与AI专家的访谈录摘要,谈到2020年AI的八大趋势: ①人工智能将使医疗保健更准确、成本更低; ②可解释性和信托及AI伦理将受到更多关注; ③在人工智能领…

在特定情况下的简单SSO实现方案
最近需要实现类似单点登录的功能。情况是这样的,最初在做网站A,做着做着,要做网站B了,要求与网站A完全分开作为两个应用,但用户数据要求与网站A保持一致,也要求用户在网站A登录后,转到网站B时不…

为创业者保驾护航 “无安全 不创业” 安全狗全国路演北京站
2019独角兽企业重金招聘Python工程师标准>>> 2015年上半年,网络安全问题毫无疑问已经成为了互联网行业关注的重点。在短短一年多的时间里,网络安全问题就从隐患转而呈现出爆发之势,即使是网易、支付宝、携程这样的互联网行业巨头也…
一种将快捷方式从开始菜单“常用应用”的中去除的方法
当我们安装一款软件的时候,这款软件的一些快捷方式可能被设置到开始菜单的“常用应用”区域。但是,如果是“卸载”快捷方式被“钉”到该区域,就会造成非常不好的体验。毕竟把“卸载”接口暴露得如此醒目,如同把该款软件的地狱大门…

ISA---不能访问网址或是多次刷新才能访问的解决方法一则
当你安装ISA2006在WINDOWS 2003 SERVER上,并打上SP2补订时。遇SNAT客户端不能访问WEB,但能PING通,能TELNET通,也能访问QQ或是MSN的问题时可以利用以下方法解决。同时,如果你遇到在此环境下,客户端访问外部网…

《评人工智能如何走向新阶段》后记(深谈人工智能发展前沿)
由AI科技大本营下载自视觉中国来自国内外的跟贴留言 深谈人工智能发展前沿 自从我们发表《评人工智能如何走向新阶段》一文以来,至今约5个月,引来了中外专家、草根们的大量跟贴留言(也有人转录他人的公开言论作为跟贴来发表的)。…

URAL 2027 URCAPL, Episode 1 (模拟)
题意:给你一个HxW的矩阵,每个点是一个指令,根据指令进行一系列操作。 题解:模拟 #include<cstdio> #include<algorithm> using namespace std;const int maxn 101; char G[maxn][maxn];int dx[] {-1,0,1, 0}; int d…

使用WinHttp接口实现HTTP协议Get、Post和文件上传功能
我实现了一个最新版本的接口,详见《实现HTTP协议Get、Post和文件上传功能——使用WinHttp接口实现》。还有基于libcurl实现的版本《实现HTTP协议Get、Post和文件上传功能——使用libcurl接口实现》。以下是原博文: 我们在做项目开发时,往往会…
收藏 | 一文带你总览知识蒸馏,详解经典论文
「免费学习 60 节公开课:投票页面,点击讲师头像」作者:凉爽的安迪来源 | 深度传送门(ID:deep_deliver)【导读】这是一篇关于【知识蒸馏】简述的文章,目的是想对自己对于知识蒸馏学习的内容和问题…

[工具推荐]用了TrueCrypt 再无难掩之隐
缘起:混在网络n多年了,手头总有些东西不想被别人看到的东西,由于小弟人品好,相貌佳,总有很多朋友喜欢用我的电脑玩啊玩啊……。 近日,冠希、柏芝等前辈以身示法,为我等上了很好一堂关于隐私保护…

利用phpmailer类邮件发送
<?phprequire("class.phpmailer.php"); //下载的文件必须放在该文件所在目录$mail new PHPMailer(); //建立邮件发送类$address "接收方邮箱"; //接收方地址$mail->IsSMTP(); //使用SMTP方式发送$…
据说这是大多数人【减肥】的真实写照
有句诗说得好 “冬天不减肥,夏天徒伤悲” 在这个人人储存脂肪的季节绝对是你甩掉脂肪的好时机(毕竟这是一个拼颜值的时代颜值是天生的,可是身材绝不能输)但是 据说大多数人的减肥经历其实是这样的减肥第一步管住嘴,迈开…
PE文件和COFF文件格式分析——导出表的应用——一种摘掉Inline钩子(Unhook)的方法
在日常应用中,某些程序往往会被第三方程序下钩子(hook)。如果被下钩子的进程是我们的进程,并且第三方钩子严重影响了我们的逻辑和流程,我们就需要把这些钩子摘掉(Unhook)。本件讲述一种在32位系统上,如何摘掉API钩子的思路和方法。…

设置列表字段为主键
转贴:Sample event handler to set a field as a pr imary key (enforce no duplicates) Got this as a request from a reader- how to prevent users from adding items with same titles as ones that already exist in the list. Codeusing System;using System.Collectio…

谁登录了你的linux
最近有一台数据库服务器自动重启。查了一下相关登录信息:查看linux下的用户登录日志,包括用户登录时所用的主机的ip:more /var/log/secure who /var/log/wtmp干了些什么? root账户下输入su - username 切换到username下输入 histo…
一种使用GDI+对图片尺寸和质量的压缩方法
今天同事向我询问图片压缩的算法,我想起大概两三年前做过的一个项目。其中包含了尺寸和质量两种压缩算法,并且支持JPEG、bmp、PNG等格式。今天把这段逻辑贴出来,供大家参考。(转载请指明来源于breaksoftware的CSDN博客)…

.NET企业级应用架构设计系列之应用服务器
本文属spanzhang(张友邦)原创,发布地址为:http://blog.csdn.net/spanzhang。转载或引用请注明原文之出处,谢谢! .NET企业级应用架构设计系列之开场白 .NET企业级应用架构设计系列之技术选型 这里要说到的…
编程语言发展70年,用50种不同语言输出「Hello World」
「免费学习 60 节公开课,投票页面,点击讲师头像」作者 | Sylvain Saurel译者 | 风车云马责编 | 屠敏【导读】历经 70 年,不断出现的编程语言为开发者解决了哪些难题?其存在又有怎样的特性?本文将以「Hello World」为例…

函数循环的理解
2019独角兽企业重金招聘Python工程师标准>>> var ulObjdocument.getElementById("box"); var lisObjulObj.getElementsTagname("li"); for(var i0;i<lisObj.length;i) { lisObj[i].οnclickfunction()//循环时对应节点绑定事件,事…
从LeNet到GoogLeNet:逐层详解,看卷积神经网络的进化
「免费学习 60 节公开课:投票页面,点击讲师头像」作者 | MrCharles来源 | CSDN原力计划获奖作品(*点击阅读原文,查看作者更多文章)前言深度学习的兴起使卷积神经网络在计算机视觉方面大放异彩,本文将按时间…

Windows客户端C/C++编程规范“建议”——前言
前言 工作中接触了很多编程规范。其中最有意思的是,公司最近发布了一版C/C编程规范,然后我看到该规范的最后一段时,有这么一句:“该规范不适用于Windows平台开发”。看来这份规范是由做其他平台开发的同学制定的。那么做Windows开…

storm入门教程 第一章 前言[转]
1.1 实时流计算 互联网从诞生的第一时间起,对世界的最大的改变就是让信息能够实时交互,从而大大加速了各个环节的效率。正因为大家对信息实时响应、实时交互的需求,软件行业除了个人操作系统之外,数据库(更精确的说是…

Windows客户端C/C++编程规范“建议”——函数
1 函数 1.1 代码行数控制在80行及以内 等级:【要求】 说明:每个函数的代码行数控制应该控制在80行以内。如果超过这个限制函数内部逻辑一般可以拆分。如果试图超过这个标准,请列出理由。但理由不包含如下: 无法拆分。流程内部…
把自己朝九晚五的工作自动化了,有错吗?
作者 | Brian Merchant译者 | 谭开朗编辑 | 屠敏来源 | CSDN(ID:CSDNnews)【导读】用代码让自己工作开启自动化之际,是否意味着自己将面临被解雇的风险?2016年,Reddit上出现了一个匿名的帖子,内…

COM组件转换成.NET组件[转]
利用类型库导入器(Type Library Importer)可以将其包装成一个.NET组件,然后就可以像使用.NET组件一样使用它了。 .NET框架只是提供了一个包装,并没有真正改变原有的对象 1.找到要转换的.dll文件 2.在命令提示符窗口中输入.dll文件的文件路径,…