设为首页 收藏本站
查看: 489|回复: 0

[经验分享] nginx+tomcat+memcached配置负载均衡与session共享

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-2-24 08:18:58 | 显示全部楼层 |阅读模式
                      版本信息:nginx-1.9.11 ,WEB服务器
          apache-tomcat-7.0.34-1,servlet容器
          apache-tomcat-7.0.34-2, servlet容器
          jdk1.6
          memcached  内存对象缓存系统

首先配置 nginx信息
配置路径:nginx-1.9.11\conf\nginx.conf
配置信息   
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
  #这是基本版的 其它的优化先不提供
    server {
    #访问地址与端口号
        listen       80;
        server_name  192.168.101.243;
        #charset koi8-r
        #access_log  logs/host.access.log  main;
        location / {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        #代理的发送请求服务器
        proxy_pass   http://local_tomcat;
    proxy_connect_timeout   5;
        proxy_send_timeout      5;
        proxy_read_timeout      5;
        }
        # 同上server proxy_pass 有配置local_tomcat 配置的两台tomcat服务器地址
    pstream local_tomcat{
        # weight 权重  越大访问的次数越多 max_fails访问失败2两次后就不在访问该服务器
        # fail_timeout 标识不访问该服务器超过600秒后重新访问该服务器,与max_fails配合使用
        server 192.168.101.243:18080 weight=1 max_fails=2 fail_timeout=600s;
        server 192.168.101.243:18081 weight=1 max_fails=2 fail_timeout=600s;
       #ip_hash;标识根据第一次访问的IP固定访问服务器,将服务器IP与客户端IP 固定起来
       #还有第二种配置方法就是 根据访问的tomcat server.xml <Engine jvmRoute="tomcat1">
       #需要将nginx配置在linux系统上 这需要第三方模块 没有window版本,缺点是访问的tomcat        #地址宕机后,session丢失。
       }



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
两台tomcat 配置

修改server.xml的配置信息

tomcat1 Engine 标签 添加 jvmRoute="tomcat1"
tomcat2 Engine 标签 添加 jvmRoute="tomcat2"

修改 Connector标签 端口号

port="18081" protocol="HTTP/1.1"
port="19091" protocol="AJP/1.3"
Server port="8006" shutdown="SHUTDOWN"


port="18080" protocol="HTTP/1.1"
port="19090" protocol="AJP/1.3"
Server port="8006" shutdown="SHUTDOWN"


运行两台tomcat 启动nginx 然后访问



访问信息为 http://192.168.101.243/testin/in.jsp

页面交替显示
TOMCAT_1 JSP Test PageTue Feb 23 16:10:03 CST 2016

E912147077710AF041A535F3AADC66CD-n1.tomcat1

5415651 null



TOMCAT_2 JSP Test PageTue Feb 23 16:10:30 CST 2016

E912147077710AF041A535F3AADC66CD-n1.tomcat2

25383887

下面 配置  memcached

在CMD 窗口 运行 memcached.exe -d install 注册为服务 然后启动该服务
将memcached提供的jar包 拷入到两台tomcat的  lib下
此处拷入的是
           javolution-5.4.3.1.jar,
           memcached-session-manager-1.5.1.jar,
           memcached-session-manager-tc7-1.5.1.jar,
           msm-javolution-serializer-1.5.1.jar,
           spymemcached-2.7.3.jar
在两台comcat的context.xml里配置 此处提供拦截请求去memcached获取session对象的功能

<Manager
className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
      <!-- 指向memcached 服务所在的地址,默认开启服务的端口是 11211 -->
        memcachedNodes="n1:192.168.101.243:11211"  
        requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"  
    />  



保存后 测试页面为


1
2
3
4
5
6
7
8
9
10
11
<html>   
<body>   
<h1>TOMCAT_2 JSP Test Page</h1>   
<%=new java.util.Date()%>
<br></br>
  <%= request.getSession().getId() %>
  <br></br>
<%= request.getSession().hashCode() %>
<% session.setAttribute("set","yangjm");%>
</body>   
</html>



1
2
3
4
5
6
7
8
9
10
11
<html>   
<body>   
<h1>TOMCAT_1 JSP Test Page</h1>   
<%=new java.util.Date()%>
<br></br>
<%= request.getSession().getId() %>
<br></br>
<%= request.getSession().hashCode() %>
<%=session.getAttribute("set")%>
</body>   
</html>





访问后出现的界面为:

TOMCAT_2 JSP Test PageTue Feb 23 16:20:06 CST 2016

E912147077710AF041A535F3AADC66CD-n1.tomcat2

32696671



TOMCAT_1 JSP Test PageTue Feb 23 16:20:26 CST 2016

E912147077710AF041A535F3AADC66CD-n1.tomcat1

22994449 yangjm


在tomcat2保存session对象值, 在tomcat1里取出tomcat2保存的值,
此处出session的ID前面一样但是逗号后面的值不一样。


                   


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-181982-1-1.html 上篇帖子: nginx1.8.0版本平滑升级新版本1.9.7 下篇帖子: nginx的两种配置用户权限访问
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表