loadbalancer linux下tomcat负载均衡配置:
(转:出处:http://blog.csdn.net/hanzhibo/archive/2008/04/11/2282959.aspx)
一. 所需要的硬件环境
1.2台或是3台linux服务器,
如果是2台服务器的话,每台服务器各安装一个tomcat应用服务器,再在其中任一台服务器上安装apache做负载均衡中间件。
如果是3台服务器的话那就更方便了,2台服务器安装tomcat,另外一台安装apache。
二. 所需要的软件环境
1.apache: httpd-2.2.6.tar.gz
2.tomcat: apache-tomcat-5.5.26.zip
3.jk:mod_jk-1.2.23-apache-2.2.x-linux-i686.so
三. 安装过程实现
1.apache安装:
<1> 把httpd-2.2.6.tar.gz 拷贝到 /usr/local 目录下
<2> 执行解压及安装命令
1)tar xvzf httpd-2.2.6.tar.gz
2)cd httpd-2.2.6
3)./configure --prefix=/usr/local/apache --enable-so --enable-mods-shared="proxy proxy_http proxy_ftp proxy_connect headers"
4)make
5)make install
6)cd /usr/local/apache/bin/
7)./apachectl configtest ##若显示Syntax ok则表明安装成功
8)./apachectl start 或是 httpd -k start ##启动apache 默认是占用端口80
9)./apachectl stop 或是 httpd -k stop ##停止apache 默认是占用端口80
10)访问apache是否成功:http://199.5.211.252:80 或是 http://199.5.211.252/ 页面输出 IT WORK!说明apache配置成功了。
2.安装tomcat
<1> tomcat的安装比较简单,最简单的方式是先在windows下解压缩apache-tomcat-5.5.26.zip为apache-tomcat-5.5.26。
<2> 解压缩后把apache-tomcat-5.5.26改名tomcat1,并拷贝完整一份tomcat1后改名为tomcat2.然后分别上传至两台linux服务器上去,目录是/usr/local/。
<3> 分别测试tomcat安装是否正常。
分别进入/usr/local/tomcat1/bin 和 /usr/local/tomcat2/bin 目录下,
用命令启动tomcat: ./startup.sh 默认tomcat占用的是8080端口,测试是否启动成功: http://199.5.211.253:8080 如果输出tomcat的console页面说明启动成功。
停止tomcat的命令是:./shutdown.sh
3.安装jk
<1>安装jk非常的简单,只需要把 mod_jk-1.2.23-apache-2.2.x-linux-i686.so 拷贝到 /usr/local/apache/modules 目录下即可。
三. 所需要修改的配置文件
1.apache配置文件的修改
<1> 打开/usr/local/apache/conf/httpd.conf 在最下面添加如下几行代码:
# added by sam 20080410 加入指定mod_jk配置文件路径
#Load mod_jk
LoadModule jk_module modules/mod_jk-1.2.23-apache-2.2.x-linux-i686.so #加载jk软件
#Configure mod_jk
JkWorkersFile conf/workers.properties #加载workers.properties文件,这个文件是新增的。
NameVirtualHost 199.5.211.252:80 #设置apache所在的机器的IP地址及占用的端口号
<VirtualHost 199.5.211.252:80> #设置apache所在的机器的IP地址及占用的端口号
ServerAdmin admin@yoursite.com.cn
ServerName 199.5.211.252:80 #设置apache所在的机器的ServerName及占用的端口号 填写IP地址即可。
ServerAlias 199.5.211.252 #设置apache所在的机器的别名
JkLogFile logs/mod_jk.log #设置apache所在的机器中用到的JK的log存放路径及文件名称
JkLogLevel error
# JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %U %T"
JkMount /* loadbalancer
</VirtualHost>
<2> 新增workers.properties文件
内容如下:
ps=\
# Define 4 workers, 3 real workers using ajp12, ajp13, jni, the last one being a loadbalancing worker
worker.list=loadbalancer
# Set properties for worker1 (ajp13)
worker.tomcat2.type=ajp13
worker.tomcat2.host=199.5.211.253 #设置负载均衡的tomcat的服务器的IP地址
worker.tomcat2.port=8009 #设置负载均衡的tomcat的服务器的监听端口
worker.tomcat2.lbfactor=1
worker.tomcat2.cachesize=100
worker.tomcat2.cache_timeout=1800
worker.tomcat2.socket_keepalive=1
worker.tomcat2.socket_timeout=60
worker.tomcat1.type=ajp13
worker.tomcat1.host=199.5.211.251 #设置负载均衡的另一台tomcat的服务器的IP地址
worker.tomcat1.port=8009 #设置负载均衡的另一台tomcat的服务器的监听端口
worker.tomcat1.lbfactor=1
worker.tomcat1.cachesize=100
worker.tomcat1.cache_timeout=1800
worker.tomcat1.socket_keepalive=1
worker.tomcat1.socket_timeout=60
#worker.worker1.prepost_timeout=9000
worker.loadbalancer.type=lb
#worker.loadbalancer.sticky_session_force=true
worker.loadbalancer.balance_workers=tomcat2,tomcat1 #设置负载均衡的tomcat的名称,与实际的几个tomcat的名称和个数要一致。
<3> 上面的配置中有几点需要注意:
1.
1) worker.list中只能出现loadbalance的worker名字,不能出现属于loadbalance的成员的worker名字(如worker1)。
2) 注意loadbalance所用worker的端口等。
3) 这里worker1,worker2需要和相应的tomcat的conf目录中server.xml配置的jvmRoute一致。
2. 修改httpd.conf
这里注意是修改虚拟主机部分JkMount 设置为loadbalance worker的名字。JkMount /* loadbalancer
<4> 配置tomcat
打开负载均衡用的的/usr/local/tomcat/conf目录下的server.xml文件。为Engine配置对应worker.properties文件中的jvmRoute。
原来的Engine:
<Engine name="Catalina" defaultHost="localhost" debug="0" >
修改为:
<Engine name="Catalina" defaultHost="localhost" debug="0" jvmRoute="tomcat1">
注意:需要修改每一个用到的tomcat server.xml对应的jvmRoute。
tomcat2修改为:
<Engine name="Catalina" defaultHost="localhost" debug="0" jvmRoute="tomcat2">
同理:多个tomcat的配置如上所示,依次配置。
<5> 到这里配置就完成了。首先启动tomcat,然后启动apache。如果没有错误,说明配置成功。
四. 测试
1.新建jsp测试页面:
代码如下所示,另存为index.jsp
<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.util.*" %>
<html><head><title>Cluster App Test</title></head>
<body>
Server Info:
<%
out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"<br>");%>
<%
out.println("<br> ID " + session.getId()+"<br>"); // 如果有新的 Session 属性设置
String dataName = request.getParameter("dataName");
if (dataName != null && dataName.length() > 0) {
String dataValue = request.getParameter("dataValue");
session.setAttribute(dataName, dataValue);
} out.print("<b>Session 列表</b>"); Enumeration e = session.getAttributeNames();
while (e.hasMoreElements()) {
String name = (String)e.nextElement();
String value = session.getAttribute(name).toString();
out.println( name + " = " + value+"<br>");
System.out.println( name + " = " + value);
}
%>
<form action="index.jsp" method="POST">
名称:<input type=text size=20 name="dataName">
<br>
值:<input type=text size=20 name="dataValue">
<br>
<input type=submit>
</form>
</body>
</html>
2.分别在两个tomcat目录下,即在/usr/local/tomcat/webapps 下新建test目录并分别把index.jsp放入test目录,并在test目录下新建WEB-INF目录,在WEB-INF目录下新建web.xml文件,内容如下所示:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
</web-app>
3.分别启动apache和2个tomcat服务器,进行测试访问,
正确的效果是访问apache的http://199.5.211.252:80/test/index.jsp 或是 http://199.5.211.252/test/index.jsp 显示的应该是访问tomcat应用的页面,
即与访问 http://199.5.211.251:8080/test/index.jsp 和 http://199.5.211.253:8080/test/index.jsp的效果是一样的,而不应该输出 IT WORK 页面。
这样的话就形成了apache的代理的负载均衡的效果了。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hanzhibo/archive/2008/04/11/2282959.aspx
分享到:
相关推荐
Spring Cloud Nacos 2021 移除了 Ribbon,在Spring Cloud Commons 项目中添加了 Spring Cloud LoadBalancer 作为新的负载均衡器。LoadBalancer 的负载均衡策略没有 Ribbon 那么丰富,只提供了RandomLoadBalancer、...
赠送jar包:spring-cloud-loadbalancer-3.1.1.jar; 赠送原API文档:spring-cloud-loadbalancer-3.1.1-javadoc.jar; 赠送源代码:spring-cloud-loadbalancer-3.1.1-sources.jar; 赠送Maven依赖信息文件:spring-...
赠送jar包:spring-cloud-loadbalancer-3.1.1.jar; 赠送原API文档:spring-cloud-loadbalancer-3.1.1-javadoc.jar; 赠送源代码:spring-cloud-loadbalancer-3.1.1-sources.jar; 赠送Maven依赖信息文件:spring-...
Spring Boot 集成 Nacos + feign + LoadBalancer,实现简单的调用,作为简单的脚手架可以的,同时将Nacos 源码集成进来可以便于调试阅读源码
DPDK技术峰会讲稿分享,DPDK开发者大会讲稿分享,DPDK Accelerated Load Balancer 演讲者Lei CHEN @ IQIYI.com, DPVS: open source HIGH PERFORMANCE l4 Load balancer ...DPVS是基于DPDK的高性能四层负载均衡解决方案
Maglev - A Fast and Reliable Software Network Load Balancer Maglev - A Fast and Reliable Software Network Load Balancer
赠送jar包:spring-cloud-loadbalancer-3.0.4.jar; 赠送原API文档:spring-cloud-loadbalancer-3.0.4-javadoc.jar; 赠送源代码:spring-cloud-loadbalancer-3.0.4-sources.jar; 赠送Maven依赖信息文件:spring-...
02 微服务负载均衡器Ribbon&LoadBalancer实战.pdf
ribbon-loadbalancer-2.2.5.jar
APACHE 2.2.9+TOMCAT6.0.18配置负载均衡 目标: 使用 apache 和 tomcat 配置一个可以应用的 web 网站,要达到以下要求: 1、 Apache 做为 HttpServer ,后面连接多个 tomcat 应用实例,并进行负载均衡。 2、 为系统...
【Kubeedge小白安装教程】Centos7.9+K8Sv1.22.17(kubeadm)+Kubeedgev1.13.1部署教程详解---(使用负载均衡器LoadBalancer) 1.准备centos7系统; 2.准备v1.22.0 -v1.24.0之间的K8S集群; 3.安装Kubeedgev1.13.1版本; 4...
OpenShift跨集群负载均衡器这是一个tcp负载平衡器,它知道多个OpenShift群集及其导出的路由。 还使用Pod筛选器来确定HA-Proxy在何处运行。 这是我的硕士论文期间创建的原型,旨在证明一种无需中断时间和风险即可更新...
Red Hat Enterprise Linux 6 Load Balancer Administration Load Balancer Add-on for Red Hat Enterprise Linux
LoadBalancer.js是一个粘性会话TCP负载平衡器,已针对与实时框架(支持HTTP长轮询回退)进行了优化。 它捕获来自指定端口的原始TCP连接,并将其转发到各种目标(定义为主机和端口组合)。 它根据客户端IP地址的哈希...
winprint-loadbalancer1. 安装和配置 Citrix NetScaler2. 启动两台 Windows Server 2008R2 作为打印服务器 vagrant up spool-ps1 --no-provision --provider virtualboxvagrant reload spool-ps1vagrant up spool-...
The Loadbalancer.org appliance is one of the most flexible load balancers on the market. The design of the appliance allows different load balancing modules to utilize the core high availability ...
SDN网络架构中的pox控制器策略代码loadbalancer SDN网络架构中的pox控制器策略代码loadbalancerSDN网络架构中的pox控制器策略代码loadbalancerSDN网络架构中的pox控制器策略代码loadbalancerSDN网络架构中的pox控制...
load-balancer-由 Vagrant NGINX Tornado MySQL 组合的简单的加载均衡器
对于相同的配置,此负载均衡器始终返回一致的结果,即除非您更改可用组或其权重,否则您可以假设每个负载均衡器节点将为给定的用户 ID 返回相同的组。 配置 配置是从config.toml文件中读取的,该文件应该与二进制...
Red Hat Enterprise Linux 6 Load Balancer Administration 红帽企业版6LVS负载均衡管理员手册 已更新至6.4版本