windows系统上nginx+memcached+tomcat的负载均衡

本文介绍如何在Windows环境下配置Nginx、Memcached和Tomcat集群,实现负载均衡及会话共享。文章详细展示了配置步骤,并提供了关键配置文件样例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文搭配环境是在一台windows7 32系统中进行的,多台请修改部分配置。

流程如下图所示,所需要的nginx和memcached以及相关的jar和tomcat会在本文结尾给出下载链接(注:memcached所需要的jar版本与tomcat的版本要对应,否则tomcat启动会报异常


1、首先我们需要配置多个tomcat,配置过程请另行百度,各tomcat的端口号记录下,我用的是8080和8088。

在各tomcat的webapps\ROOT目录下,修改index.jsp文件加个标识,我在对应的tomcat的页面加了各自的端口。

2、解压nginx,把nginx的文件夹放到e盘server文件夹中

3、修改nginx/conf/nginx.conf(下载资源的是已改好的 只需要修改下ip和端口号)

worker_processes  2;#工作进程的个数,一般与计算机的cpu核数一致  
 
events {  
    worker_connections  1024;#单个进程最大连接数(最大连接数=连接数*进程数)  
}  
 
http {  
    include       mime.types; #文件扩展名与文件类型映射表  
    default_type  application/octet-stream;#默认文件类型  
 
    sendfile        on;#开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。  
      
    keepalive_timeout  65; #长连接超时时间,单位是秒  
 
    gzip  on;#启用Gizp压缩  
      
    #服务器的集群  
    upstream  netitcast.com {  #服务器集群名字   
<span style="color:#FF0000;">        server    127.0.0.1:8080  weight=1;#服务器配置   weight是权重的意思,权重越大,分配的概率越大。  
        server    127.0.0.1:8088  weight=1;</span>  
    }     
 
    #当前的Nginx的配置  
    server {  
        listen       80;#监听80端口,可以改成其他端口  
        server_name  localhost;##############   当前服务的域名  
 
    location / {  
            proxy_pass http://netitcast.com;  
            proxy_redirect default;  
            proxy_connect_timeout       1;
            proxy_read_timeout          1;
            proxy_send_timeout          1;
        }  
          
 
        error_page   500 502 503 504  /50x.html;  
        location = /50x.html {  
            root   html;  
        }  
    }  
} 

4.现在启动nginx服务

在cmd输入

cd e:\server\nginx
e:
start nginx

 关闭服务则输入 

nginx -s stop

5.nginx+tomcat的配置就好了,nginx默认占了80端口,打开配置好的tomcat,我们可以访问下本机

这是访问到8088的页面


不断刷新,这是访问到8080的页面


也可以把其中一个tomcat关闭刷新页面试试效果。

6.现在开始集成memcached,把memcached也解压到e:\server

在CMD下

cd e:\server\memcached
e:

安装服务

e:\server\memcached> memcached.exe -d install
启动服务

e:\server\memcached> memcached.exe -d start

memcached默认占端口11211

7.现在开始配置tomcat,每个tomcat都要配置,打开\conf\的context.xml

<Context>
	 <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
     <span style="color:#FF0000;"> memcachedNodes="n1:localhost:11211"  </span>
	failoveNodes="n1"  
   lockingMode="auto"
   sticky="false"
   requestUriIgnorePattern= ".*\.(png|gif|jpg|css|js)$"    
   sessionBackupAsync= "false"  
   sessionBackupTimeout= "100"    
   copyCollectionsForSerialization="true"  
   transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"    
       />
</Context>

在每个tomcat的lib下放入jar.rar解压后的jar,在webapps\ROOT目录下添加session.jsp内容如下:

    <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>  
    <%  
    String path = request.getContextPath();  
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  
    %>  
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
    <html>  
      <head>  
        <base href="<%=basePath%>">    
        <title>My JSP 'session.jsp' starting page</title>  
        <meta http-equiv="pragma" content="no-cache">  
        <meta http-equiv="cache-control" content="no-cache">  
        <meta http-equiv="expires" content="0">      
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  
        <meta http-equiv="description" content="This is my page">  
        <!-- 
        <link rel="stylesheet" type="text/css" href="styles.css"> 
        -->  
      </head>  
      <body>  
        <%  
         System.out.println(session.getId());  
         out.println("<br> This is (TOMCAT1|TOMCAT2), SESSION ID:" + session.getId()+"<br>");  
        %>  
      </body>  
    </html>  
重启tomcat 出现如图所示:


现在开始访问session.jsp


另一个浏览器访问


两个tomcat 控制台信息对比


关闭其中一个tomcat,继续访问发现各个浏览器的session 没有变化,

打开关闭的tomcat,把刚刚没有关闭的tomcart关闭,刷新页面,各个浏览器的session还是没变。

就这样一个简单的nginx+memcached+tomcat搞定了,记住一定要开启memcached、nginx服务。

资源下载链接http://download.youkuaiyun.com/detail/xu_xiao_ji/9550578


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值