nginx+tomcat+memcached实现负载均衡

什么是负载均衡?可以从正反两个方面来思考,从正向思考就是将来自客户端的请求分发到服务器各个部分处理,以此来减小服务器压力提升性能,从反向思考其实就是将多台服务器的资源充分利用。使用nginx+Tomcat+memcached实现负载均衡的方式如下图(本文中nginx和memcached使用rpm安装,Tomcat使用解压版)。

《nginx+tomcat+memcached实现负载均衡》 01.png

1.配置Tomcat,参阅另外一篇文章:Linux下同时运行多个Tomcat

2.nginx分发请求配置

安装好nginx后,修改nginx目录下的配置文件(/nginx/conf/nginx.conf)

《nginx+tomcat+memcached实现负载均衡》 02.gif
《nginx+tomcat+memcached实现负载均衡》 03.png

测试下是否可以通过本机的80端口访问Tomcat内的资源,如果可以访问即配置成功

《nginx+tomcat+memcached实现负载均衡》 04.gif

3.memcached启动并配置到Tomcat,实现session共享

如果不配置memcached,部分需要session校验的接口就会报错

《nginx+tomcat+memcached实现负载均衡》 05.png

rpm安装memcached后,在/usr/bin下启动memcached
命令:/usr/bin/memcached -d -m 256 -u root -p 12001 -c 256 -P /usr/bin/memcached

《nginx+tomcat+memcached实现负载均衡》 06.gif

memcached具体参数信息:

《nginx+tomcat+memcached实现负载均衡》 07.png

#在Tomcat的conf/context.xml中添加memcached配置
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:10.10.19.73:12001"
sticky="false"
lockingMode="auto"
sessionBackupAsync="false"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
sessionBackupTimeout="180000" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>

《nginx+tomcat+memcached实现负载均衡》 08.png

每个Tomcat中都需要添加memcached配置并重启,这样既可实现多个Tomcat共享session,调用接口不会报session错误

《nginx+tomcat+memcached实现负载均衡》 09.png

    原文作者:安小龙
    原文地址: https://www.jianshu.com/p/54ac7b68ff7b
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞