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

[经验分享] windows下nginx+tomcat+memcache负载均衡集群搭建

[复制链接]

尚未签到

发表于 2016-12-26 11:18:49 | 显示全部楼层 |阅读模式
  使用nginx 做负载均衡 memcached处理session共享
   环境 windows 7  X64
  java : jdk7  
  nginx : 1.5.0  http://nginx.org/
  tomcat :6.37.0 X 3
  memecached : http://memcached.org/
   
   一
     1 JDK的安装不多说 
   二 安装tomcat
     在一台机器上启动多个TOMCAT :  修改 conf/server.xml 中的三个配置
  这里改成三个不同的端口 如 8005,8006,8007
DSC0000.jpg
这里也是一样 不同的三个 如 8010,8020,8030
DSC0001.jpg
 
这里也是一样 不同的三个 如 8866,8877,8888
DSC0002.jpg
保存之后 分别启动三个TOMCAT 控制台无错误
三 : 安装memcached解压开,打开cmd 进入memcached解压到的路径D:\javaNTM\memcached 输入:
memcached.exe –d install 回车安装windows服务
输入:memcached.exe –p 11211 –d start 回车启动memcached服务 -p 表示端口
四:安装Nginx 
  下载解压,打开cmd进入 D:\javaNTM\nginx-1.5.10
输入 : start nginx
输入nginx -t 没有保存表示成功启动 
如果启动失败 请修改conf/nginx.conf 中的 charset=utf-8
五:nginx 反向代理 
        修改 conf/nginx.conf 文件

  注入 端口号要和自己的tomcat一致
  upstream tomcat{
        server    localhost:8080;
        server    localhost:8010;
        server    localhost:8020;
    }
server{
    localhost / {
  proxy_pass   http://tomcat;
  proxy_redirect    off;
proxy_set_header   Host $host;
proxy_set_header   X-Real-IP $remote_addr;
proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for; 
client_max_body_size   10m;
client_body_buffer_size   128k;
proxy_connect_timeout   90;
proxy_send_timeout   90;
proxy_read_timeout   90;
proxy_buffer_size   4k;
proxy_buffers   4 32k;
proxy_busy_buffers_size   64k;
proxy_temp_file_write_size  64k;
  }
}
  
六:session的共享
下载如下jar包 (就是这些个jar折腾的够呛)

DSC0003.jpg
 
全部拷贝进TOMCAT/lib中全部的tomcat都要添加哦
然后修改 conf/context.xml
    添加如下代码:
    <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
   sticky="false"
   memcachedNodes="n1:localhost:11211"
   failoverNodes=""
            lockingMode="all"
   requestUriIgnorePattern=".*\.(png|gif|jpg|css|js|ico)$"
   sessionBackupAsync="false"
   sessionBackupTimeout="100"
            transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"     
    />

因为支持memcached分布式  如果有多台memcached 在 memcachedNodes="nx:IP:port" 即可
注意:这里的端口号要和启动的设置的端口一致
打开cmd 进入nginx 的解压目录 输入 nginx -s -stop  输入 nginx start  重新启动nginx依次启动三台tomcat

   在TOMCAT \webapps\ROOT 下新增一张页面 demo.jsp
<%@ page contentType="text/html; charset=UTF-8" %>   
<%@ page import="java.util.*" %>   
<html><head><title>Cluster Test</title></head>   
<body>   
<%   
  //HttpSession session = request.getSession(true);   
  System.out.println(session.getId());   
  out.println("<br> SESSION ID:" + session.getId()+"<br>");     
  // 如果有新的请求,则添加session属性   
  String name = request.getParameter("name");   
  if (name != null && name.length() > 0) {   
     String value = request.getParameter("value");   
     session.setAttribute(name, value);   
  }     
    out.print("<b>Session List:</b>");     
    Enumeration<String> names = session.getAttributeNames();   
    while (names.hasMoreElements()) {   
        String sname = names.nextElement();    
        String value = session.getAttribute(sname).toString();   
        out.println( sname + " = " + value+"<br>");   
        System.out.println( sname + " = " + value);   
   }   
%>   
jvm1
</body>   
</html>

JVM 分别是 1 2 3 分别放进 t1 t2 t3 中 然后打开浏览器

http://localhost/demo.jsp 
多次刷新看到不同的jvm 相同的session 表示成功
nginx + tomcat + memcached 环境就搭建好了 
    

运维网声明 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.iyunv.com/thread-319666-1-1.html 上篇帖子: nginx学习笔记2之Nignx基本配置和优化 下篇帖子: 转 nginx rewrite 参数和例子
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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