什么是负载均衡?可以从正反两个方面来思考,从正向思考就是将来自客户端的请求分发到服务器各个部分处理,以此来减小服务器压力提升性能,从反向思考其实就是将多台服务器的资源充分利用。使用nginx+Tomcat+memcached实现负载均衡的方式如下图(本文中nginx和memcached使用rpm安装,Tomcat使用解压版)。
1.配置Tomcat,参阅另外一篇文章:Linux下同时运行多个Tomcat
2.nginx分发请求配置
安装好nginx后,修改nginx目录下的配置文件(/nginx/conf/nginx.conf)
测试下是否可以通过本机的80端口访问Tomcat内的资源,如果可以访问即配置成功
3.memcached启动并配置到Tomcat,实现session共享
如果不配置memcached,部分需要session校验的接口就会报错
rpm安装memcached后,在/usr/bin下启动memcached
命令:/usr/bin/memcached -d -m 256 -u root -p 12001 -c 256 -P /usr/bin/memcached
memcached具体参数信息:
#在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"
/>
每个Tomcat中都需要添加memcached配置并重启,这样既可实现多个Tomcat共享session,调用接口不会报session错误