负载均衡JavaWeb

Nginx + Tomcat7 负载均衡 + Redis3 的

2017-03-19  本文已影响102人  ThingLin

windows下模拟,nginx做代理负责转发请求,tomcat集群,redis负责session的共享。
  <a href="http://download.csdn.net/detail/linjiqian/9785974">Demo资料CSDN下载</a>

Paste_Image.png

</br>

1.<a href="http://nginx.org/en/download.html">nginx下载</a>,配置nginx,修改nginx的nginx.conf配置文件,在http块中增加配置项

    upstream localhost {   
        #server 被代理主机ip:端口 处理的权重。
        server localhost:18881 weight=1;
        server localhost:18882 weight=1;
    }

修改http块中的location配置项,配置代理

        location / {
        proxy_pass http://localhost;
        proxy_redirect default;
        }

到nginx解压的目录下打开cmd,start nginx 启动nginx。

</br>

2.<a href="https://redisdesktop.com/download">下载redis桌面管理工具</a>,<a href="https://github.com/MSOpenTech/redis/releases">下载redis</a>,在redis.windows.conf配置文件增加如下配置

#配置最大内存
maxmemory 1048000000
#设置密码为root
requirepass root

启动redis,在cd到redis解压的目录下运行cmd,redis-server redis-windows.conf

Paste_Image.png

</br>

3.配置tomcat,先修改tomcat的server.xml端口配置,要接入redis管理session需要引入三个jar包放入到每个tomcat的lib目录下(如果lib出问题,启动tomcat时会报错)

Paste_Image.png

在各个tomcat配置文件context.xml中增加一段


    <Valve  className="com.radiadesign.catalina.session.RedisSessionHandlerValve" />
    <Manager className="com.radiadesign.catalina.session.RedisSessionManager"
     pathname=""
     host="localhost" 
     port="6379"
     password="root"
     database="0" 
     maxInactiveInterval="60" />

这段就是让tomcat把session存入到redis的配置,host、port...这些都是连接redis的配置,其中database是指存到redis中的哪个库,默认情况下redis有16个库,0是第一个库。

</br>

4.启动tomcat,测试,两个不同的tomcat已经模拟共享了session

demoddd.gif

</br>
</br>

5.如果出现如下问题,恐怖的情况,瞬间挤爆内存,就需要注意tomcat的配置文件server.xml
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1"> 一定不要有jvmRoute这个属性。

Paste_Image.png Paste_Image.png

</br>
</br>
</br>

上一篇下一篇

猜你喜欢

热点阅读