作为学习记录一下,以便以后用到能快速集成。

一、Nginx负载均衡

       所谓的负载均衡就是通过Nginx把客户机的请求分发给不同的tomcat去处理,以免单个服务器因大量请求引发处理过慢或者挂掉。

首先到http://nginx.org/en/download.html下载一个Nginx

1、解压,打开命令行cd到你解压的目录  nginx

nginx redis lua缓存 nginx实现redis负载均衡_负载均衡

2、浏览器输入 http://localhost/    就可以看见nginx默认页面,类似tomcat的欢迎界面

nginx redis lua缓存 nginx实现redis负载均衡_tomcat_02

3、接下来准备两个tomcat端口自己定,不冲突就行本人:apache-tomcat-7.0.47-1  8080  apache-tomcat-7.0.47-2 8081,打开nginx目录下conf文件夹编辑nginx.conf文件

nginx redis lua缓存 nginx实现redis负载均衡_redis_03

加入upstream 模块

upstream test{
server localhost:8080;
server localhost:8081;
}

nginx redis lua缓存 nginx实现redis负载均衡_nginx redis lua缓存_04

加入代理 

proxy_pass   http://test;

对tomcat加入一个javaWeb基础项目,对项目默认页面加入区分。启动nginx和两个tomcat

浏览器访问http://localhost/

nginx redis lua缓存 nginx实现redis负载均衡_nginx redis lua缓存_05

通过刷新页面就可以看见tomcat1与tomcat2两个服务器随机出现,到此nginx负载均衡结束。

二、Redis session共享

        上面用到了两个tomcat就存在单客户端访问session无法做到唯一的问题。

1、到https://redis.io/download下载一个redis,解压,运行redis-server.exe

nginx redis lua缓存 nginx实现redis负载均衡_nginx_06

看到这个基本算是成功了,运行redis-cli.exe 可以尝试一下

nginx redis lua缓存 nginx实现redis负载均衡_nginx_07

2、把下面三个分别放到tomcat的lib下  

nginx redis lua缓存 nginx实现redis负载均衡_负载均衡_08

分别在tomcat的conf文件编辑context.xml加入

<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />  
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"  
          host="127.0.0.1"  
          port="6379"  
          database="0"  
         maxInactiveInterval="60" />

nginx redis lua缓存 nginx实现redis负载均衡_nginx redis lua缓存_09

启动完毕,在浏览器输入 http://localhost/  刷新页面可以看出,sessionId在两个tomcat容器上是同一个。

nginx redis lua缓存 nginx实现redis负载均衡_负载均衡_10

至此nginx负载均衡、redis+tomcat 实现session共享的功能完成。

上面的集成所有工具包、demo为一下