nginx+tomact+memcached(缓存)集群

jopen 10年前

关于Nginx+tomcat+memcached(缓存)配置集群负载均衡的下载与安装流程:

实现的整体步骤


一:安装memcached。(memcached可以一个或者多个)

二:安装两个tomcat

三:配置msm。

 

四:安装nginx,实现负载均衡。

以下是详细步骤:

 第一步:安装memcached

1.       下载memcached服务端memcached-1.2.6-win32-bin.zip,地址:csdn

 第二步:安装tomcat

1.       安装两个tomcat6,如果不在myEclipse等集成环境下,需要先安装JDK.注意修改两个

tomcat的端口号(server.xml中要修改三个端口:8005,8080,8009,把这三个改成没有在用的端口就可以了)。

2.       启动tomcat看是否能成功启动。如果不能启动成功,很可能就是端口冲突。


第三步:配置msm:
    1,先下载msm及其依赖包

[url] http://memcached-session-manager.googlecode.com/files/memcached-session-manager-1.3.0.jar [/url]
[url] http://memcached-session-manager.googlecode.com/files/msm-javolution-serializer-jodatime-1.3.0.jar[/url]

[url] http://memcached-session-manager.googlecode.com/files/msm-javolution-serializer-cglib-1.3.0.jar [/url]

[url] http://spymemcached.googlecode.com/files/memcached-2.4.2.jar [/url]

[url] http://memcached-session-manager.googlecode.com/files/javolution-5.4.3.1.jar [/url]

2,将这5个包放到$TOMCAT_HOME/lib目录下


3,修改$TOMCAT_HOME/conf/context.xml

 
Xml代码

    <Context docBase="d:/apache-tomcat-6.0.30/webapps" path="" reloadable="true" >
 
    <Manager   className="de.javakaffee.web.msm.MemcachedBackupSessionManager"  
        memcachedNodes="n1:localhost:11211,n2:localhost:11211"                                           
        requestUriIgnorePattern=".*\.(png|gif|jpg|css|js)$"  
        sessionBackupAsync="false"  
        sessionBackupTimeout="100"                             
transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"  
        copyCollectionsForSerialization="false"  
        />  


    </Context>  
          这里的memcachedNodes是填写memcached节点,多个节点时可以以空隔分开,如:
          n1:localhost:11211 n2:localhost:11211,

          memcached所在服务器ip,11211是memcached默认端口号。


          sessionBackupTimeout的单位为分钟


          d:/apache-tomcat-6.0.30/webapps替换成tomact的webaapps目录


           修改后重启两个TOMCAT即可,这个时候已经解决SESSION的共享问题.

第四步:安装nginx,实现负载均衡


一、1.nginx:是一款轻量级的Web 服务器/反向代理服务器。其特点是占有内存少,并发能力强。

   作用:Nginx是通过将多个Web Server绑定到同一个IP地址下,以实现多个WebServer间的    

         负载均衡,降低单个Web Server的负荷,以提高整体的性能与稳定性。

    2.nginx的安装与运行:
    cd nginx的安装目录
    cd nginx-1.4.6
    start nginx
     这样,nginx 服务就启动了(也可以直接双击打开)。打开任务管理器,查看 nginx.exe 进程,有二个进程会显示,占用系统资源,那是相当的少。

然后再打开浏览器,输入就可以看到nginx的欢迎页面了

    nginx -s stop          // 停止nginx
    nginx -s reload       // 重新加载配置文件
    nginx -s quit          // 退出nginx


    3.nginx.conf文件需要修改的配置:
    
#user  nobody;

#启动进程,通常设置成和cpu的数量相等
worker_processes  2;    

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {

#单个后台worker process进程的最大并发链接数
    worker_connections  2048;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;


    #连接超时时间
    #keepalive_timeout  0;
    keepalive_timeout  185;

    #gzip  on;

    #设定负载均衡的服务器列表
     upstream mysvr {
    #weigth参数表示权值,权值越高被分配到的几率越大
    server ip1:8080 weight=6;
    server ip2:8080 weight=5;
    }

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass http://mysvr;  
            index  index.html index.htm index.jsp;
            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_connect_timeout       1;       #nginx跟后端服务器连接超时时间(代理连接超时) 
            proxy_read_timeout          30;       #后端服务器数据回传时间(代理发送超时)       
            proxy_send_timeout          60;    #连接成功后,后端服务器响应时间(代理接收超时)
        }
    其余配置不需要更改,详见nginx.conf文件。

注意:

  1. 如果nginx请求中断,报upstream timed out,修改以下参数。

        proxy_read_timeout          30;       #后端服务器数据回传时间(代理发送超时)       
         proxy_send_timeout          60;    #连接成功后,后端服务器响应时间(代理接收超时)  

  keepalive-timeout选项
  此选项说的是可使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,keepalive-timeout功能可避免建立或重新建立连接。

        

  2.   jar版本,系统版本window7   32位。