博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Apache+mod_jk+tomcat集群搭建
阅读量:6005 次
发布时间:2019-06-20

本文共 3459 字,大约阅读时间需要 11 分钟。

  hot3.png

环境

  • 四台主机: cloud01,cloud02,cloud03,cloud04
  • OS: CentOS 6.5
  • Tomcat安装位置: /opt/tomcat

集群方案

  • cloud02 cloud03 cloud04 为 tomcat 节点
  • cloud01 上的 apache 做负载均衡
  • 端口均使用标准端口, 因为是部署在不同的机器上

安装 Apache

yum install httpd# 完成后 需要在 /etc/httpd/conf/httpd.conf 中添加一句# ServerName localhost

如果想要使用 apachectl status 命令 需要 elinks yum install elinks -y 和 mod_status, 一般 mode_status 是默认加载的,但是还要一点配置.

在 httpd.conf 中添加如下配置

ExtendedStatus on
# Allow server status reports generated by mod_status, # with the URL of http://servername/server-status # Change the ".example.com" to match your domain to enable. #
SetHandler server-status Order deny,allow Allow from all

如果配置后还有 /server/status 错误, 参考

编译/配置 mod_jk

编译 mod_jk

# 使用的时候最新版本为 1.2.40# 可以查看其他版本 http://www.apache.org/dist/tomcat/tomcat-connectors/jk/# 这里有点扯淡的是 1.2.40的脚本都是 dos 格式的, 需要先 dos2unix# 所以我直接换了个版本 使用的 1.2.39 的, 代码格没问题wget http://www.apache.org/dist/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.39-src.zipunzip tomcat-connectors*.zipcd tomcat-connectors*cd nativeyum install -y httpd-devel./configure --with-apxs=/usr/sbin/apxsmakemake install

配置 mod_jk.conf

新建 /etc/httpd/conf/mod_jk.conf, 写入如下内容

# 加载mod_jk Module# /usr/lib64/httpd/modules/mod_jk.soLoadModule jk_module modules/mod_jk.so# 指定workers.properties文件路径 JkWorkersFile conf/workers.properties# 指定那些请求交给tomcat处理# "controller"为在workers.propertise里指定的负载分配控制器名JkMount /* controller

配置 workers.properties

新建 /etc/httpd/conf/workers.properties, 写入如下内容

#serverworker.list = controller#========cloud03========#ajp13端口号,在tomcat下server.xml配置,默认 8009worker.cloud03.port=8009#tomcat的主机地址,如不为本机,请填写ip地址 worker.cloud03.host=cloud03#协议类型worker.cloud03.type=ajp13# server的加权比重,值越高,分得的请求越多。# lbfactor是负载平衡因数(Load Balance Factor)worker.cloud03.lbfactor=1#========cloud02========worker.cloud02.port=8009worker.cloud02.host=cloud02worker.cloud02.type=ajp13worker.cloud02.lbfactor=1#========cloud04========worker.cloud04.port=8009worker.cloud04.host=cloud04worker.cloud04.type=ajp13worker.cloud04.lbfactor=1#========controller,负载均衡控制器========#负载均衡控制器类型,lbfactor是负载平衡因数(Load Balance Factor)worker.controller.type=lb#指定分担请求的tomcat列表worker.controller.balanced_workers=cloud03,cloud02,cloud04# 粘性session(默认是打开的) # 当该属性值=true(或1)时,代表session是粘性的,# 即同一session在集群中的同一个节点上处理,# session不跨越节点。在集群环境中,一般将该值设置为falseworker.controller.sticky_session=false# 设置用于负载均衡的server的session可否共享worker.controller.sticky_session_force=1

修改 httpd.conf

修改/etc/httpd/conf/httpd.conf,在最后添加:

Include conf/mod_jk.conf

配置 tomcat

安装 tomcat 只需要下载解压就可以了, 没什么特殊的.以下的配置都是在 server.xml 中进行的. 该配置文件在 tomcat 安装目录中 conf 目录下.

搜索 Engine 节点, 添加 jvmRoute 属性为之前 worker.properties 配置的名字.因为我在配置 worker.propertis 时都是使用的主机名,所以 cloud02 修改后就是

cloud03, cloud04 也这样修改.

然后在 </Engine> 前, 加入如下内容.

启动集群

# 在 cloud01 中操作ssh cloud01# 启动 apache 需要 root 权限sudo apachectl restart# 启动所有节点# 注意: 下面 tomcat 的路径需要根据个人的安装来修改for i in $(echo 02 03 04);do    ssh "cloud$i" /opt/tomcat/bin/startup.sh;done;# 查看运行状态, 确保有 BootStrap 进程for i in $(echo 02 03 04); do echo ====$i====;ssh "cloud$i" jps; done;

集群配置完成后可以通过刷新 http://cloud01/manager/status 这个页面, 观察 IP address 来判断是否成功.

其他

有的 tomcat 配置提到 <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>, 该类在 tomcat8 中已经移除了.参看

转载于:https://my.oschina.net/liting/blog/536624

你可能感兴趣的文章
蚂蚁金服漆远谈大数据智能:有95%智能客服
查看>>
《2040大预言:高科技引擎与社会新秩序》——2.3 自我实现预言
查看>>
运用信息化手段建立管理“云平台”
查看>>
抱团发展成云服务厂商共识
查看>>
《高性能科学与工程计算》——3.5 算法分类和访存优化
查看>>
印国有电信企业BSNL致函印度电信部申请700 MHz频谱
查看>>
Cohesity扩大云软件产品组合 目标直指云未来
查看>>
阿里云跨界合作芒果TV 粉丝看明星也用云计算
查看>>
教你一招CRM成功实施的方法!
查看>>
数据中心网络攻击形态漫谈
查看>>
单元测试实施解惑(一)
查看>>
《编写高质量代码:改善c程序代码的125个建议》——建议18-2:整型变量应该直接与0进行比较...
查看>>
灵活的 WEB 下拉组件 TinySelect
查看>>
微软携手红帽拥抱开源,开拓混合云新疆域
查看>>
《CCNP ROUTE 300-101认证考试指南》——8.8节定义关键术语
查看>>
《软件建模与设计: UML、用例、模式和软件体系结构》一一1.1 软件建模
查看>>
JavaScript 跨域请求库 XDomain
查看>>
《嵌入式系统开发之道——菜鸟成长日志与项目经理的私房菜》——02-03项目生命周期五大阶段...
查看>>
《例说51单片机(C语言版)(第3版)》——1-7 实时练习
查看>>
Docker CE 镜像源站
查看>>