设为首页 收藏本站
查看: 639|回复: 0

[经验分享] apache+tomcat负载均衡3种实现方式

[复制链接]
累计签到:4 天
连续签到:1 天
发表于 2018-11-23 07:07:49 | 显示全部楼层 |阅读模式
  1.首先安装apache,编译完成后,通过IP:端口就行访问,如果返回“it workers”证明Apache启动成功(注意apache的工程路径要正确)

  2.下载JK,下载地址为http://mirror.bjtu.edu.cn/apache/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.31/,果http服务器是Apache2.0.X版本,则必须选择mod_jk-1.2.31-httpd-2.0.52.so,页面下方有英文的说明,大家可以看下,我这里宣传的mod_jk-1.2.23-apache-2.2.x-linux-x86_64.so,跟自己操作系统版本吻合,然后重命名为mod_jk.so,并且赋值777权限
  3.将mod_jk.so拷贝到apache/modules
  4.在httpd.conf里增加如下内容
  include "/usr/local/apache/conf/mod_jk.conf"
  5.在conf路径下新建mod_jk.conf文件,并添加如下内容
  #加载mod_jk Module
  LoadModule jk_module modules/mod_jk.so
  #指定 workers.properties文件路径
  JkWorkersFile conf/workers.properties
  #指定哪些请求交给tomcat处理,"loadbalancer"为在workers.propertise里指定的负载分配控制器名
  JkLogFile logs/mod_jk.log
  #JkLogLevel debug
  JkMount  /*.do loadbalancer
  JkMount  /*.jsp loadbalancer
  6.在conf下新建workers.properties文件,并添加如下内容
  worker.list=loadbalancer
  #此处与mod_jk.conf中保持一致
  worker.worker2.port=8009
  #tomcat2中 ajp13 端口号,对应tomcat配置文件server.xml中Connector port="8009",默认8009
  worker.worker2.host=127.0.0.1
  #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
  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会话是否为粘性   
  #这样负载均衡器lb就会尽量保持一个session,也就是使用户在一次会话中跟同一个Tomcat进行交互
  worker.loadbalancer..sticky_session_force=false
  worker.loadbalancer.sticky_session=1
  #是否启用session共享
  7.下载tomcat并解压,复制2份tomcat,保持成为worker2,worker3
  修改2个tomcat的server.xml,保证2个tomcat的端口号不一致,具体配置如下,需要修改黑体加粗标示
  worker2如下:
[html]view plaincopy



  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  

  worker3如下:
[html]view plaincopy



  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  •   
      
  

  8.分别在2个tomcat下建立项目test1,并新增andashu.jsp,内容如下:
  
  

  9.分别访问2个tomcat,http://IP:8081/test1/andashu.jsp 以及http://10.14.133.204:8080/test1/andashu.jsp,如果2个tomcat的日志catalina.out里 都打印出===========,证明2个tomcat访问都ok
  

  10.分别启动apache worker2,worker3,用不同的浏览器或者不同的机器分别访问http://IP/test1/andashu.jsp,如果如果2个tomcat的日志catalina.out里 都打印出===========,证明负载均衡搭建成功(这里要用不同浏览器或者不同机器访问)
  

  11.试节点故障,随便停掉其中的一台tomcat,继续访问http://IP/test1/andashu.jsp,能正常访问
  

  

  

  其他2种方式也可以实现负载均衡
  2、ajp_proxy
去掉httpd.conf文件中下面内容的注释(删掉#号),开启下边的配置

Include conf/extra/httpd-vhosts.conf
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
注意:
除了mod_proxy.so,mod_proxy_balancer.so,mod_proxy_connect.so
如果是采用ajp_proxy,需要加载mod_proxy_ajp.so这个模块;
如果是采用http_proxy,需要加载mod_proxy_http.so这个模块;

httpd.conf,删除刚才jk方式的配置内容,增加下边的配置
ProxyRequests Off

BalancerMember ajp://127.0.0.1:9009 loadfactor=1 route=worker3
BalancerMember ajp://127.0.0.1:8009loadfactor=1 route=worker2

conf/extra/httpd-vhosts.conf增加配置

         ServerAdmin xxxx@xxx.com
         ServerName localhost
         ServerAlias localhost
         ProxyPass / balancer://loadbalancer/ stickysession=jsessionid nofailover=On
         ProxyPa***everse / balancer://loadbalancer/
         ErrorLog "logs/loadbalancer-error.log"
         CustomLog "logs/loadbalancer-access.log" common

配置完成任务,访问http://IP:8081/test1/andashu.jsp,检查是否能正常访问。

3、http_proxy
http_proxy的配置与ajp_proxy类似,修改方法2的httpd.conf配置如下,其它不变
ProxyRequests Off

BalancerMember http://127.0.0.1:9009 loadfactor=1 route=worker3
BalancerMember http://127.0.0.1:8009 loadfactor=1 route=worker2


配置完成任务,访问http://IP:8081/test/test.jsp,检查是否能正常访问



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-638385-1-1.html 上篇帖子: 使用awk统apache日志文件ip访问站点次数 下篇帖子: apache+tomcat实现session共享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表