当前位置: 首页 > news >正文

apache+tomcat配置负载均衡,实现http与websocket接口分压

一、应用场景

在生产环境中,应用服务器(此文以tomcat为例)不免面临高访问量的压力,相比而言web服务器(此文以apache为例)能够承担更大的并发量。Apache本身带有一些模块,可以完成对应用服务器访问流量分流分压的功能。这里就以apache+tomcat配置负载均衡的方式,实现http与websocket接口分压的效果。

二、系统环境

服务器:阿里云ECS服务器;

操作系统:ubuntu 14;

应用服务器:tomcat 8.5+;

Web服务器:apache 2.4+;

三、Tomcat配置

从tomcat官网下载压缩包,解压为两个tomcat实例(分别为tomcat-8080与tomcat-8082)。

a) 修改tomcat-8080的配置文件(conf/server.xml)

 <Connector port=”8080″ protocol=”HTTP/1.1″

               connectionTimeout=”20000″

               redirectPort=”8443″ URIEncoding=”UTF-8″ />

 <Connector port=”8010″ protocol=”AJP/1.3″

redirectPort=”8443″ URIEncoding=”UTF-8″ />

 <Engine name=”Catalina” defaultHost=”localhost”jvmRoute=”jvm8080″>

四、修改tomcat-8082的配置文件(conf/server.xml)

 <Connector port=”8082″ protocol=”HTTP/1.1″

               connectionTimeout=”20000″

               redirectPort=”8443″ URIEncoding=”UTF-8″ />

 <Connector port=”8012″ protocol=”AJP/1.3″

redirectPort=”8443″ URIEncoding=”UTF-8″ />

 <Engine name=”Catalina” defaultHost=”localhost”jvmRoute=”jvm8082″>

五、Apache配置

a) 开启模块

a2enmod proxy*

a2enmod lbmethod*

a2enmod xml2enc

b) 配置vhost

i. 在site-enabled下创建文件balance.conf

ii. 在ports.conf开启代理端口(此处以82为例)

iii. 内容编辑如下:websocket的负载均衡要在ajp的负载均衡之前。

#配置端口

<VirtualHost *:82>

 

ServerAdmin webmaster@localhost

DocumentRoot /var/www/html

 

###########负载均衡配置开始###########

ProxyRequests Off

    ProxyPass /balancer-manager !

 

###一、配置websocket的负载均衡###

<Proxy balancer://wscluster>

     BalancerMember ws://localhost:8080

     BalancerMember ws://localhost:8082

</Proxy>

 

#代理项目的weboscket接口

ProxyPass /project/wsApi  balancer://wscluster/project/wsApi

    ProxyPassReverse /project/wsApi  balancer://wscluster/project/wsApi

 

###二、配置常规负载均衡###

<Proxy balancer://tomcatcluster>

    BalancerMember ajp://127.0.0.1:8010 route=jvm8080

BalancerMember ajp://127.0.0.1:8012 route=jvm8082

   ProxySet lbmethod=byrequests  stickysession=JSESSIONID|jsessionid  nofailover=On scolonpathdelim=On

    </Proxy>

 

#代理websocket接口外的其他请求

    ProxyPass /  balancer://tomcatcluster/

    ProxyPassReverse /  balancer://tomcatcluster/

 

 

ErrorLog ${APACHE_LOG_DIR}/error.log

CustomLog ${APACHE_LOG_DIR}/access.log combined

 

#展示负载均衡的管理页面

<Location /balancer-manager>

        SetHandler balancer-manager

</Location>

###########负载均衡配置结束###########

 

</VirtualHost>

c) 启动与查看

启动tomcat,启动apache

通过ip:82/balancer-manager,可以查看配置是否成功,与分流效果。

 来自:李德涛博客

转载于:https://www.cnblogs.com/zytrue/p/8496887.html

相关文章:

  • C 语言整型谜题
  • React Router v4 学习笔记
  • Django--middleware 详解
  • AI降临——“人工智能女王”卡塞尔中国行
  • 内核解密 | Oracle 18c 数据库安装ORA-12754的两种解决方案
  • iOS 自定义转场动画浅谈
  • 2018-3-6 Linux学习笔记
  • 软件工程基础之一——个人介绍与计划
  • 国威科技亮相VR China,反重力1号大受欢迎
  • 无人机协助科研人员探寻珍稀植物,仅需20分钟
  • 【BZOJ】1076 [SCOI2008]奖励关 期望DP+状压DP
  • 2017年全球大数据正在朝这七个趋势发展
  • SQLSERVER吞噬内存解决记录
  • 巨头间数据之争频发的背后,是用户对于个人数据话语权的缺失
  • 结合人体部位,将虚拟现实做到更完美
  • php的引用
  • [译]Python中的类属性与实例属性的区别
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • gf框架之分页模块(五) - 自定义分页
  • golang中接口赋值与方法集
  • input实现文字超出省略号功能
  • java取消线程实例
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • mysql 数据库四种事务隔离级别
  • 理清楚Vue的结构
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 删除表内多余的重复数据
  • 深度学习在携程攻略社区的应用
  • 使用common-codec进行md5加密
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 一个SAP顾问在美国的这些年
  • 一些css基础学习笔记
  • [Shell 脚本] 备份网站文件至OSS服务(纯shell脚本无sdk) ...
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​什么是bug?bug的源头在哪里?
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • #HarmonyOS:基础语法
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (三十五)大数据实战——Superset可视化平台搭建
  • (转)Linux整合apache和tomcat构建Web服务器
  • .NET 6 Mysql Canal (CDC 增量同步,捕获变更数据) 案例版
  • .net Application的目录
  • .NET Core中的去虚
  • .NET Micro Framework初体验
  • .NET 将多个程序集合并成单一程序集的 4+3 种方法
  • .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary)
  • .NET国产化改造探索(三)、银河麒麟安装.NET 8环境
  • .NET框架类在ASP.NET中的使用(2) ——QA