香港云服务器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