nginx+tomcat+memcached 集群环境搭建



这几天 看了点关于Nginx 的文章 准备上手搭建起来, 网上的帖子很多 但是感觉似乎大部分都是拷贝过来,根本都跑步起来。
    经过半天的折腾 总算是摸索出来
   使用nginx 做负载均衡 memcached处理session共享
   环境 windows 7  X64
  java : jdk7 
  nginx : 1.5.0  <a>http://nginx.org/</a>;
  tomcat :6.37.0 X 3
  memecached : <a>http://memcached.org/</a>;
  
   一
     1 JDK的安装不多说
   二 安装tomcat
     如何在一台机器上启动多个TOMCAT :
       修改 conf/server.xml 中的三个配置

这里改成三个不同的端口 如 8005,8006,8007

这里也是一样 不同的三个 如 8010,8020,8030

 这里也是一样 不同的三个 如 8866,8877,8888
保存之后 分别启动三个TOMCAT 控制台无错误

就开始进行下一步
三 : 安装memcached
         http://memcached.org/ 到这里下载
        解压开来    
    打开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 中的

修改默认的值为utf-8 去掉注释
五:nginx 反向代理
        修改 conf/nginx.conf 文件

在server{
    localhost / {
.....
}
}添加如下代码
       
                          proxy_pass   http://localhost;
     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;
 在server 之前添加如下代码
    注入 端口号要和自己的tomcat一致
 
    upstream localhost {
        server    localhost:8080;
        server    localhost:8010;
        server    localhost:8020;
    }
 六:session的共享
下载如下jar包 (就是这些个jar折腾的够呛)

全部拷贝进TOMCAT/lib中 三个都要哦
然后修改 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 ;
 

 

控制台
 
nginx + tomcat + memcached 环境就搭建好

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值