Nginx+Tomcat+Memcached负载均衡

我搭了2个虚拟机,均是32位的centos 6.5,IP分别是192.168.26.134、192.168.26.135,在192.168.26.134上安装nginx、memcached、tomcat,在192.168.26.135上安装tomcat

一.安装nginx

下载pcre、openssl、zlib、nginx安装包,下载完毕后如下操作

1.安装pcre

tar -zxvf pcre-8.36.tar

cd pcre-8.36

./configure

make & make install

2.安装openssl

tar -zxvf openssl-1.0.0o.tar.gz

cd openssl-1.0.0o

./config

make & make install

3.安装zlib

tar -zxvf zlib-1.2.8.tar.gz

cd zlib-1.2.8

./configure

make & make install

4.安装nginx

tar -zxvf nginx-1.6.2.tar

cd nginx-1.6.2

./configure

make & make install

nginx默认安装目录是/usr/local/nginx

二.安装memcached

下载libevent、memcached安装包,下载完毕后执行如下操作

1.安装libevent

tar zxvf libevent-1.4.14.tar.gz

cd libevent-1.4.14

./configure –prefix=/usr/local/libevent

make & make install

2.安装memcached

tar -zxvf  memcached-1.4.21.tar.gz

cd  memcached-1.4.21

./configure –with-libevent=/usr/local/libevent

make & make install

安装好后,可通过/usr/local/bin/memcached -d -u root命令启动(memcached默认端口为11211)

三.配置nginx

注:jdk、tomcat的安装不介绍了。

使用vi /usr/local/nginx/conf/nginx.conf命令编辑nginx的配置文件,修改如下:

http {

......

 proxy_cache_path /test/data/cache/ levels=1:2 keys_zone=imgcache:100m inactive=1d max_size=10g;
    upstream tomcat_server {
        server 192.168.26.134:8080 weight=1;
        server 192.168.26.135:8080 weight=1;
    }
server {
        listen       192.168.26.134:80;
        server_name  192.168.26.134;        //因为是内网配置,所以这里没写域名
        index index.html index.jsp;
        #charset koi8-r;
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|html|htm|css)$ {
           log_not_found off;
           access_log off;
           expires 7d;
           proxy_pass http://tomcat_server;
           proxy_cache imgcache;
           proxy_cache_valid 200 302 1d;
           proxy_cache_valid 404 10m;
           proxy_cache_valid any 1h;
           proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504;
        }
location / {
           proxy_set_header Host $host;
           proxy_set_header X-Forwarded-For $remote_addr;
           proxy_pass http://tomcat_server;
        }
......

}

四.配置tomcat

修改2个tomcat的context.xml如下:

<Context>

     <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
      memcachedNodes="n1:192.168.26.134:11211"       //n1为memcached节点,自己可随意定义,但2个tomcat的节点必须保持一致
      sticky="false"
      lockingMode="auto"
      sessionBackupAsync="false"
      sessionBackupTimeout="1000"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory" />

</Context>
添加mem和msm的依赖jar包到2个tomcat的lib目录下:

couchbase-client-1.2.2.jar

kryo-1.04.jar

kryo-serializers-0.11.jar

memcached-session-manager-1.6.5.jar

memcached-session-manager-tc7-1.6.5.jar

minlog-1.2.jar

msm-kryo-serializer-1.6.5.jar

reflectasm-1.01.jar

spymemcached-2.10.2.jar

五.运行

1.启动memcached:/usr/local/bin/memcached -d -u root

2.启动192.168.26.134、192.168.26.135上的tomcat,查看日志无报错则正常

3.启动nginx:/usr/local/nginx/sbin/nginx (可先通过/usr/local/nginx/sbin/nginx  -t命令查看nginx配置文件是否正确)

六.测试

登录页面:

  <body>
    This is tomcat_one. <br>                  //注:部署到192.168.26.134上,写This is tomcat_one;部署到192.168.26.135上,写This is tomcat_two。
    <form action="login" method="post">
        <input name="name" value="" type="text"/>
        <input type="submit" value="提交"/>
    </form>
  </body>
</html>
处理登录的servlet:

public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        HttpSession session = request.getSession();
        session.setAttribute("name", request.getParameter("name"));
        response.sendRedirect("show.jsp");
    }

查询页面:

 <body>
    This is tomcat_one <br>                //注:部署到192.168.26.134上,写This is tomcat_one;部署到192.168.26.135上,写This is tomcat_two。
    <%
        String id = session.getId();
        Object o = session.getAttribute("name");
        String name = "";
        if (o != null) {
            name = o.toString();
        }
        out.write(id+"<br>");
        out.write(name);
     %>

1.每次刷新页面,This is tomcat_one和This is tomcat_two来回切换,表示负载均衡成功。

2.登录后刷新页面,This is tomcat_one和This is tomcat_two来回切换,sessionID和name值不变,表示session共享成功。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值