分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

apache + tomcat负载均衡搭建

发布时间:2023-09-06 01:48责任编辑:白小东关键词:apachetomcat

安装jdk:

进入/usr目录下,创建java文件夹,mkdir java,将

用rz命令上传到java目录下,并赋权限chmod 755 jdk-6u45-linux-i586.bin

./jdk-6u45-linux-i586.bin(注意,这个步骤一定要在jdk-6u45-linux-i586.bin所在目录下,就是java目录)

解压完毕后在java目录生成

配置环境变量:

vi /etc/profile,添加如下内容在:

LANGUAGE=CN

export language

JAVA_HOME=/usr/java/jdk1.6.0_45

export JAVA_HOME

export PATH=$JAVA_HOME/bin:$PATH

添加完成后保存并退出,让/etc/profile文件修改后立即生效,可以使用如下命令:source /etc/profile

java -version,看输出的版本,如果能看到版本号证明jdk安装成功

安装apache,编译完成后,通过虚机IP:端口就行访问,如果返回“it works”证明apache启动成功(注意apache的工程路径要正确),不加端口号也行,我试过了

上传

到root目录下,此文件是32位的,一定要跟自己操作系统吻合,然后重命名为mod_jk.so,使用如下命令:mv mod_jk-1.2.23-apache-2.2.x-linux-i686.so  mod_jk.so

并且赋值777权限,chmod -R 777  mod_jk.so

将mod_jk.so拷贝到apache2/modules:cp mod_jk.so /usr/local/apache2/modules/

在httpd.conf里增加如下内容:

httpd.conf的路径,在/usr/local/apache2/conf下,vi httpd.conf,添加include "/usr/local/apache2/conf/mod_jk.conf",保存并退出,如果存在就不添加

在/usr/local/apache2/conf 路径下新建mod_jk.conf文件,创建文件的命令是:touch mod_jk.conf,然后添加如下内容:

#加载mod_jk Module  

LoadModule jk_module modules/mod_jk.so

#指定 workers.properties文件路径  

JkWorkersFile conf/workers.properties

#指定哪些请求交给tomcat处理,"loadbalancer"为在workers.properties里指定的负载分配控制器名

JkLogFile logs/mod_jk.log

#JkLogLevel debug

JkMount /*.do loadbalancer

JkMount /*.jsp loadbalancer

在/usr/local/apache2/conf下新建workers.properties文件:touch workers.properties,并添加如下内容:

worker.list=loadbalancer  # 此处与mod_jk.conf中保持一致

worker.worker2.port=8009  #t omcat2中 ajp13 端口号,对应tomcat配置文件server.xml中 # Connector port="8009",默认8009

worker.worker2.host=127.0.0.1(改成虚机ip,已改过) # worker2的地址,本机loaclhost或者127.0.0.1,远程直接写IP

worker.worker2.type=ajp13 # 与worker2中的server.xml的protocol保持一致

worker.worker2.lbfactor=1 # 负载的权重值,越高表示负载越大

worker.worker3.port=9009

worker.worker3.host=127.0.0.1(改成虚机ip,已改过)

worker.worker3.type=ajp13

worker.worker3.lbfactor=1

worker.loadbalancer.type=lb

worker.loadbalancer.balance_workers=worker2,worker3 # 指定负载的worker列表,用逗号分隔

worker.loadbalancer..sticky_session=false # 配置session会话是否为粘性

worker.loadbalancer.sticky_session=1 #这样负载均衡器lb就会尽量保持一个session,也就是使用户在一次会话中跟同一个Tomcat进行交互

worker.loadbalancer..sticky_session_force=false # 是否启用session共享

安装tomcat:

用rz命令上传到root目录下

解压:tar -zxvf  apache-tomcat-7.0.41.tar.gz

将解压后生成的文件夹改名为worker2:mv apache-tomcat-7.0.41 worker2

同时拷贝两个tomcat,命名为worker2和worker3

mv apache-tomcat-7.0.41 worker2

cp worker2  worker3 -r

就是安装2个tomcat,worker2和worker3

修改2个tomcat的server.xml,保证2个tomcat的端口号不一致,两个server.xml的位置分别在worker2/conf、worker3/conf目录下

worker2具体配置如下:

图中的四个红框里是需要修改的,但是前三个和安大叔博客的要求是一样的,所以保持不变,最后一个改为了worker2

worker3具体配置如下:

图中的四个红框里是需要修改的

第一个红框8005改为8006(已改过)

第二个红框8080改为8081(已改过)

第三个红框8009改为9009(已改过)

最后一个jvm1改为worker3(已改过)

上传应用程序war包:

用rz命令将分别上传到/root/worker2/webapps和/root/worker3/webapps下,然后在webapps(工程路径)下面会自动生成一个test1文件夹(之前没有,退出webapps目录,在进入webapps目录就会看到test1文件夹)

cd test1

看到先前上传的test1.war文件在test1目录里解压成test.jsp格式,分别编辑/root/worker2/webapps/test1和/root/worker3/webapps/test1里test.jsp的内容,编辑后的内容变成test_worker2(之前的内容是test) 、test_worker3(之前的内容是test)

启用tomcat命令是:在/root/worker2/bin 目录输入./startup.sh

停掉tomcat命令是:在/root/worker2/bin 目录输入./shutdown.sh

同理在worker3也一样的操作

分别启动apache worker2,worker3,用不同的浏览器访问

第一种情况:

http://192.168.2.199:8080 (IE9浏览器)

输出结果:

第二种情况:

192.168.2.199:8081 (Firefox浏览器)

输出结果:

第三种情况:

(Google浏览器)能访问成功,如下图

刷新页面显示

反复刷新可以看到两个页面轮询访问两个tomcat,这种方式实现了负载均衡

ps:如果报404错误,就要检查问题出在哪,我历经无数次判断终于锁定了apache在作怪,于是使用ps -ef |grep httpd这个命令,把出来的进程全部杀掉,只保留下面的进程

然后按照下面的步骤重启apache服务,红框里的好像不执行也可以(这个没试过),就会看到想看到的结果了,太不容易了

第四种情况:

停掉tomcat1(worker2)时候

192.168.2.199/test1/test.jsp能访问成功(Firefox浏览器),如下图,反复刷新只能访问tomcat2(worker3)

第五种情况:

停掉tomcat2(worker3)

http://192.168.2.199/test1/test.jsp能访问成功(IE9浏览器),如下图, 反复刷新只能访问tomcat1(worker2)

综上显示,证明apache + tomcat负载均衡搭建成功

apache + tomcat负载均衡搭建

原文地址:https://www.cnblogs.com/laosun0204/p/8733283.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved