Ubuntu14.04下Apache2+mod_jk+tomcat 配置Tomcat服务器集群负载均衡
来源:互联网 发布:海康网络摄像机键盘 编辑:程序博客网 时间:2024/06/05 06:24
最近配置服务器的负载均衡,网上的文档多但比较早、并不详细,我参考了 apache网站上的文档,和博客在这里做一个记录。
首先说一下背景,以下来自于百度百科。
mod_jk 简称JK,是Apache服务器的一个可插入模块,用以为Apache或IIS服务器提供处理JSP/Servlet的能力。Apache作为一款强大的Web服务器,本身缺乏处理JSP/Servlet的功能,为了能够处理对JSP/Servlet的请求,必须使用JSP/Servlet容器,如Tomcat等。Tomcat本身也可以作为Web服务器使用,但是其功能远不及Apache强大,所以Tomcat往往作为JSP/Servlet容器使用。mod_jk实质上是Apache与Tomcat的连接器,并藉此附带提供集群和负载均衡的功能。
这里给出两个apache文档的地址:
http://tomcat.apache.org/tomcat-8.0-doc/cluster-howto.html、http://tomcat.apache.org/connectors-doc/
我的配置环境:三台ubuntu server14.04,tomcat8,apache2。
1. 运行以下两条命令,安装apache2和mod_jk.so;
2.配置apache.conf文件
在ubuntu 14.04系统中,配置有一些不一样的地方。在apache2的文件夹下,找不到httpd.conf文件。查看apache2.conf文件,发现文件中有这样的两行代码,在/etc/apache2/mod-enabled文件夹下,看到了jk.conf和jk.load文件,因此,配置mod_jk可在这两个文件里进行。
3.配置work.properties文件
关于work.properties文件的配置信息可参考:http://tomcat.apache.org/connectors-doc/reference/workers.html。
在jk.conf文件中,我们可以看到如下一行代码,这说明workers.properties文件放在了/etc/libapache2-mod-jk/workers.properties文件下,当然你也可以更改这个路径,重新建立一个worker.properties。但是为了简便,可以直接到这个路径下修改workers.properties。
4.在work.properties文件中配置负载均衡worker
这个负责负载均衡的worker是一个虚拟的worker,它并不直接与Tomcat服务器进行交流,但它却管理着其它worker,负责负载均衡。在worker.properties文件中添加如下两行。这样声明创建一个loadbalance worker,它的类型是lb,负责负载均衡,它管理着namenode和cloud2这两个worker。其它的配置选项用默认的就好了。
5.编辑/etc/apache2/sites-available/000-default.conf文件,在<VirtualHost *:80>中添加如下代码。
至此apache就配置完成了。
6.在每个Tomcat节点上进行配置
首先,在<Engine/>标签中配置jvmRoute属性,如下所示,注意这个属性的值要和你的worker的名字一样。
完成以上步骤后,直接用浏览器访问apache地址,就能进入Tomcat主页。关闭其中一个Tomcat服务器,其它Tomcat也能访问。
其它的内容还没测试。接下来还要研究一下SSL/TSL的访问问题。
这里给出两个apache文档的地址:
http://tomcat.apache.org/tomcat-8.0-doc/cluster-howto.html、http://tomcat.apache.org/connectors-doc/
我的配置环境:三台ubuntu server14.04,tomcat8,apache2。
1. 运行以下两条命令,安装apache2和mod_jk.so;
sudo apt-get install apache2sudo apt-get install libapache2-mod-jk安装完之后,可在/usr/lib/apache2/modules文件夹下看到mod_jk.so文件。
2.配置apache.conf文件
在ubuntu 14.04系统中,配置有一些不一样的地方。在apache2的文件夹下,找不到httpd.conf文件。查看apache2.conf文件,发现文件中有这样的两行代码,在/etc/apache2/mod-enabled文件夹下,看到了jk.conf和jk.load文件,因此,配置mod_jk可在这两个文件里进行。
# Include module configuration:IncludeOptional mods-enabled/*.loadIncludeOptional mods-enabled/*.conf打开jk.conf文件,添加如下代码,增加服务器的安全性。
JkOptions +RejectUnsafeURI然后再添加如下的代码,使Apache可以转发请求到我们设置的worker上。
JkMount /* loadbalancer
3.配置work.properties文件
关于work.properties文件的配置信息可参考:http://tomcat.apache.org/connectors-doc/reference/workers.html。
在jk.conf文件中,我们可以看到如下一行代码,这说明workers.properties文件放在了/etc/libapache2-mod-jk/workers.properties文件下,当然你也可以更改这个路径,重新建立一个worker.properties。但是为了简便,可以直接到这个路径下修改workers.properties。
JkWorkersFile /etc/libapache2-mod-jk/workers.properties首先,将workers.tomcat_home和workers.java_home改为你自己的Tomcat的安装目录和Java_home目录。ps就不用改了。修改worker.list,把它改为你的Tomcat服务器的名字,如果有多个服务器,则用逗号将它们隔开。这个list定义了两个worker,它会用来和你的Tomcat服务器进行通信。
worker.list=namenode,cloud2,loadbalancer下面针对每一tomcat worker做一下配置,如下所示。这里port是8009,它是tomcat默认的AJP13协议的监听端口,可在Tomcat的context.xml中修改这个端口。host是远程tomcat的地址可带上端口号,host可以是主机名也可以是IP地址。type是我们使用的apache和tomcat的通信协议,这里是ajp13。lbfactor是用于负载均衡的权值,值越大那么apache就认为这个服务器的性能越好,那么就会将更多的请求发送给这个Tomcat服务器。socket_timeout是如果tomcat在这个时间内没有回应JK时,JK就会生成一个错误,然后进行重试,如果不设置这个值,默认情况下,JK会一直等待。socket_keepalive设置为True是防止防火墙将JK和Tomcat之间闲置的连接切断。
ping_mode
指示在什么时候进行连接侦测,即检查JK和Tomcat的连接是否正常,它有很多检测的模式,这里我使用的是I,然后再给出一个探测的超时时间ping_timeout,那么当连接空闲时间超过connection_ping_interval
时,JK就会去检测连接是否正常,connection_ping_interval的默认时间是(ping_timeout/1000)*10
。worker.namenode.port=8009worker.namenode.host=namenodeworker.namenode.type=ajp13worker.namenode.lbfactor=1worker.namenode.socket_timeout=10worker.namenode.socket_keepalive=Trueworker.namenode.ping_mode=Iworker.namenode.ping_timeout=10000
4.在work.properties文件中配置负载均衡worker
这个负责负载均衡的worker是一个虚拟的worker,它并不直接与Tomcat服务器进行交流,但它却管理着其它worker,负责负载均衡。在worker.properties文件中添加如下两行。这样声明创建一个loadbalance worker,它的类型是lb,负责负载均衡,它管理着namenode和cloud2这两个worker。其它的配置选项用默认的就好了。
worker.loadbalancer.type=lbworker.loadbalancer.balance_workers=namenode,cloud2
5.编辑/etc/apache2/sites-available/000-default.conf文件,在<VirtualHost *:80>中添加如下代码。
JkMount /* loadbalancer
至此apache就配置完成了。
6.在每个Tomcat节点上进行配置
首先,在<Engine/>标签中配置jvmRoute属性,如下所示,注意这个属性的值要和你的worker的名字一样。
<Engine name="Catalina" defaultHost="localhost" jvmRoute="cloud2">然后,在<Engine/>标签中添加以下这段代码。
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
完成以上步骤后,直接用浏览器访问apache地址,就能进入Tomcat主页。关闭其中一个Tomcat服务器,其它Tomcat也能访问。
其它的内容还没测试。接下来还要研究一下SSL/TSL的访问问题。
0 0
- Ubuntu14.04下Apache2+mod_jk+tomcat 配置Tomcat服务器集群负载均衡
- Ubuntu14.04下Apache2+mod_jk+tomcat 配置Tomcat服务器集群负载均衡
- Apache+mod_jk+Tomcat负载均衡服务器配置
- Apache + MOD_JK + TOMCAT实现集群和负载均衡配置指南
- Apache + MOD_JK + TOMCAT实现集群和负载均衡配置指南
- Apache+tomcat+mod_jk+centos6.2负载均衡集群配置
- Tomcat+Apache+mod_JK实现集群配置/负载均衡
- Apache+tomcat+mod_jk+centos6.2负载均衡集群配置--转载
- Apache+tomcat+mod_jk+centos6.2负载均衡集群配置
- Apache+tomcat+mod_jk+centos6.2负载均衡集群配置
- Apache+tomcat+mod_jk+centos6.2负载均衡集群配置
- linux下apache tomcat mod_jk 负载均衡+集群+session 复制
- linux下apache tomcat mod_jk 负载均衡+集群+session 复制
- linux下apache tomcat mod_jk 负载均衡+集群+session 复制
- apache、mod_jk负载均衡与tomcat集群
- apache+mod_jk+tomcat集群与负载均衡
- Tomcat的集群配置(Apache + mod_jk + tomcat来实现tomcat集群的负载均衡)
- Apache+Tomcat+mod_jk负载均衡配置
- Bootstrap的js插件之滚动监听(scrollspy)
- Android Material Design之在RecyclerView中嵌套CardView实现
- Caffe 深度学习框架上手教程
- MFC Socket简单服务器与客户端源码
- MFC:Ribbon界面设计
- Ubuntu14.04下Apache2+mod_jk+tomcat 配置Tomcat服务器集群负载均衡
- Linux 命令tail手动实现
- HDU 1040 As Easy As A+B
- php mygetype typeof 变量的数据类型
- 设计模式之工厂模式
- 利用nodejs+phantomjs+casperjs采集淘宝商品的价格
- 自行整理了一个较为准确的倒计时功能代码(js实现)
- Eddy's research I
- flash声音设置