首页>>帮助中心>>香港云服务器mod_jk 结合 apache + tomcat 实现负载均衡,动静分离

香港云服务器mod_jk 结合 apache + tomcat 实现负载均衡,动静分离

2024/9/14 155次

香港云服务器mod_jk 结合 apache + tomcat 实现负载均衡,动静分离


mod_jk 结合 apache + tomcat 实现负载均衡,动静分离


1,实验前准备
主机名

1.1.1.128 tomcat1.cluster.com
1.1.1.129 tomcat2.cluster.com
1.1.1.1 apache.cluster.com


时间同步
关闭iptables,selinux
配置yum

2,在tomcat1和tomcat2上安装好tomcat

3,在apache上安装apache,下面是源码版的做法。
/share/soft/lamp/apache_source/httpd-2.2.19.tar.gz
解压编译安装

--如果以前编译过apache,先使用下面两条命令把源码和安装路径全删除
# rm /usr/src/httpd-2.2.19/ -rf
# rm /usr/local/apach2/ -rf

# tar xf /share/soft/lamp/apache_source/httpd-2.2.19.tar.gz -C /usr/src/

# cd /usr/src/httpd-2.2.19/

# ./configure --enable-so --enable-rewrite --enable-modules=all --enable-mods-shared=all --with-mpm=prefork

#make ;make install

--上面的编译参数,可以不加--enable-proxy,--enable-proxy-ajp,--enable-proxy-balancer。因为我们这里是使用mod_jk的

4,在apache上编译mod_jk模块
/share/soft/soft/tomcat_source/tomcat-connectors-1.2.37-src.tar.gz



# tar xf /share/soft/soft/tomcat_source/tomcat-connectors-1.2.37-src.tar.gz -C /usr/src/
# cd /usr/src/tomcat-connectors-1.2.37-src/

# ls--这里面conf里有配置的模版,native目录里可以与apache的apxs指令编译出mod_jk模块
BUILD.txt docs LICENSE NOTICE tools
conf jkstatus native support xdocs

# cd native/
# ./configure --with-apxs=/usr/local/apache2/bin/apxs --源码版的编法

# make ;make install

# ls /usr/local/apache2/modules/mod_jk.so --编译后产生mod_jk模块


5,配置apache主配置文件,使其使用mod_jk的子配置文件

# vim /usr/local/apache2/conf/httpd.conf
Include conf/extra/httpd-jk.conf--主配置文件加上这一句

6,拷贝要用到的配置文件模版
--拷贝mod_jk的配置文件模版到对应的apache配置目录
# cp /usr/src/tomcat-connectors-1.2.37-src/conf/httpd-jk.conf /usr/local/apache2/conf/extra/

--拷贝定义调度的配置文件模版
# cp /usr/src/tomcat-connectors-1.2.37-src/conf/workers.properties /usr/local/apache2/conf/extra/

--拷贝定义动静分离的配置文件模版
# cp /usr/src/tomcat-connectors-1.2.37-src/conf/uriworkermap.properties /usr/local/apache2/conf/extra/

7,配置这三个配置文件

# vim /usr/local/apache2/conf/extra/httpd-jk.conf

JkWorkersFile conf/extra/workers.properties--因为我拷到conf/extra,所以这里改成对应的路径
JkMountFile conf/extra/uriworkermap.properties --打开注释
SetEnvIf REQUEST_URI "\.(htm|html|css|gif|jpg|js)$" no-jk --打开注释


JkMount jk-status
Order deny,allow
Deny from all
Allow from 127.0.0.1 10.2.2.200 --加上允许10.2.2.200查看jk-status


JkMount jk-manager
Order deny,allow
Deny from all
Allow from 127.0.0.1 10.2.2.200 --加上允许10.2.2.200查看jk-manager



# vim /usr/local/apache2/conf/extra/workers.properties

worker.list=balancer
worker.balancer.type=lb

worker.balancer.balance_workers=node1--指定的后面被调度的jvmroute
worker.node1.reference=worker.template
worker.node1.host=1.1.1.128--后面被调度的tomcat的IP
worker.node1.port=8009--改成8009
worker.node1.activation=A


worker.balancer.balance_workers=node2
worker.node2.reference=worker.template
worker.node2.host=1.1.1.129--另一台的IP
worker.node2.port=8009--改为8009
worker.node2.activation=A

worker.template.type=ajp13

# vim /usr/local/apache2/conf/extra/uriworkermap.properties

/admin/*=balancer--这些目录下的所有文件都交给balancer去调度
/manager/*=balancer
/jsp-examples/*=balancer
/servlets-examples/*=balancer
/examples/*=balancer
/*.jsp=balancer --表示apache家目录下*.jsp就给balancer去进行后台两个tomcat的调度


8,部署网站内容(一个网站,在apache和后台tomcat的家目录里都要部署相同的内容,实际情况可以使用共享存储)

我这里就把tomcat里的内容拷过来
要注意的是目录的对应
我现在编译版apache的家目录为默认的/usr/local/apache2/htdocs/


所以我现在在tomcat1上操作:
--把下面三个目录拷到apache的家目录下
# scp -r /usr/local/tomcat/webapps/ROOT/* apache.cluster.com:/usr/local/apache2/htdocs/

9,配置两台tomcat的jvmroute

在tomcat1上操作:
# vim /usr/local/tomcat/conf/server.xml


在tomcat2上操作:
# vim /usr/local/tomcat/conf/server.xml


10,启动服务
apache上:
# /usr/local/apache2/bin/apachectl start

tomcat1和tomcat2上启动tomcat:
# /usr/local/tomcat/bin/startup.sh

一诺网络香港免备案专区,提供「香港增强VPS」和「香港特惠VPS」两种类型的高可用弹性计算服务,搭载新一代英特尔®至强®铂金处理器,接入CN2低延时高速回国带宽线路,网络访问顺滑、流畅。机房网络架构采用了BGP协议的解决方案可提供多线路互联融合网络,使得不同网络运营商线路的用户都能通过最佳路由实现快速访问。香港云VPS低至29元/月,购买链接:https://www.enuoidc.com/vps.html?typeid=2