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,可以查看配置是否成功,与分流效果。

 来自:李德涛博客

posted @ 2018-03-03 15:49  ShareAndCreate  阅读(392)  评论(0编辑  收藏  举报