一、应用场景

在生产环境中,应用服务器(此文以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,可以查看配置是否成功,与分流效果。

来自:李德涛博客

apache+tomcat配置负载均衡,实现http与websocket接口分压的更多相关文章

  1. Apache+Tomcat部署负载均衡(或集群)

    本来只打算写Tomcat集群部署,简化Apache和Tomcat整合过程的.后来想了想,这样不便于没有用过Apache的朋友来学习本文内容.于是干脆加大篇幅,让对Apache不了解的朋友能对Apach ...

  2. 简单的 Nginx+Tomcat 配置负载均衡集群

    简单 Nginx+Tomcat 配置负载均衡集群 前期准备 解压两个tomcat,修改端口号 server1:8081 server:8082 同时启动 nginx官网下载解压版nginx 创建一个简 ...

  3. Apache和Tomcat 配置负载均衡(mod-proxy方式)-无session共享、无粘性session

    转:https://blog.csdn.net/wangjunjun2008/article/details/38268483 mod-proxy方式实现负载均衡是利用了Apache 2.x版本自带的 ...

  4. Apache+Tomcat实现负载均衡

    反向代理负载均衡 (Apache2+Tomcat7/8) 使用代理服务器可以将请求转发给内部的Web服务器,让代理服务器将请求均匀地转发给多台内部Web服务器之一上,从而达到负载均衡的目的.这种代理方 ...

  5. 基于Apache+Tomcat实现负载均衡

    1.基于Apache和tomcat实现负载均衡 准备三个虚拟机一个安装Apache两个安装Tomcat 关闭防火墙 systemctl stop firewalld Iptabled -F Seten ...

  6. Apache +Tomcat的负载均衡与集群配置

    实验拓扑图: 一.搭配环境 (1).Tomcat的安装和配置 Tomcat_a的ip:192.168.55.229 Tomcat_b的ip:192.168.55.231 Tomcat的需要安装jdk和 ...

  7. Apache和Tomcat 配置负载均衡(mod-proxy方式)-粘性session

    Tomcat集群配置后端Tomcat Server为支持AJP的独立服务,前端Apache配置为粘性会话(sticky-session),Tomcat不配置Cluster配置和Session复制. 配 ...

  8. Apache+Tomcat+mod_jk负载均衡

    一.需要的软件 1.jdk1.5以上 2.Tomcat6以上 3.Apache2.2以上 ,地址http://apache.dataguru.cn//httpd/binaries/win32/ ,名称 ...

  9. centos6.5 apache+tomcat结合 负载均衡

    一. 负载均衡:根据 uri 表达式把请求分发给各个服务器处理.如:/*.jsp = lb_s  就是说把所有jsp请求交给lb_s , 当然它是个Tomcat. 二. 安装配置mod_jk    m ...

随机推荐

  1. Linux NIO 系列(04-2) poll

    目录 一.select 和 poll 比较 二.poll API 附1:linux 每个进程IO限制 附2:poll 网络编程 Linux NIO 系列(04-2) poll Netty 系列目录(h ...

  2. JPA派生标识符2

    @Entity@Table(name = "adam_importfile")@IdClass(BusinessAdviserFileId.class)public class B ...

  3. 分布式-技术专区-Redis分布式锁实现-第一步

    承接前面一篇Redis分布式锁的原理介绍 https://www.cnblogs.com/liboware/p/11921759.html 我们针对于实现方案进行接下来上篇进行重新的规划和定义以及完善 ...

  4. 在MVC4.5.1中使用Ninject

    看完Pro ASP.NET MVC5的前14章之后,终于开始了自己的项目搭建. 打算在实际项目中使用Ninject 但是总是出现各种问题.这里记录一下 在书中使用的Ninject的版本是: Insta ...

  5. 关于PCB的Mark点

    关于PCB的Mark PCB板子做好后,需要贴装元器件,现在元器件的贴装都是通过机器来完成的(SMT).SMT中会用到mark点. 一.什么是Mark点 Mark点也叫基准点或者光学定位点,为贴装工艺 ...

  6. 通过list中值得名称查询索引号

    >>> a = ['www','iplaypython','com']>>> a.index('iplaypython')

  7. 怎么部署TFS

    https://vsalm-hols.readthedocs.io/zh_CN/latest/sysadmin/tfs-installation-ad.html 根据以上网站的步骤一字不差的进行部署肯 ...

  8. java多线程并发面试题

    1.多线程有什么用? (1)发挥多核CPU的优势 随着工业的进步,现在的笔记本.台式机乃至商用的应用服务器至少也都是双核的,4核.8核甚至16核的也都不少见,如果是单线程的程序,那么在双核CPU上就浪 ...

  9. Ubuntu 16.04 安装docker-ce,docker-compose

    Get Docker CE for Ubuntu 卸载旧版本 sudo apt-get remove docker docker-engine docker.io containerd runc 使用 ...

  10. 关于 webpack 的研究

    webpack的官网:http://webpack.github.io/ 安装webpack 演示项目安装,使用全局安装:npm install webpack -g 真正的项目使用依赖式安装,保证在 ...