zoukankan      html  css  js  c++  java
  • nginx-tomcat负载均衡redis-session共享

    基本环境:

    redis-2.8

    apache-tomcat-6.0.41

    nginx1.6.2

    1,redis配置

    1,配置redis访问密码

    到redis的目录下找的redis.conf,解开requirepass注释(此属性用于设置密码)。

    如:

    requirepass root

    2,启动redis

    到redis的目录以后台运行的方式启动redis

     redis-server /root/redis-2.8.9/redis.conf &

    2,tomcat准备工作

    1,准备tomcat应用服务器

    部署一个应用到tomcat,将里面的需要静态处理的文件,例如img,单独存放在一个文件夹下,如static下面。将用户产生的媒体文件存放到一个共用的目录下,如/data/media下。后面用nginx配置处理。

    2,添加tomcat和redis做session共享的jar包

    在tomcat自己的lib下添加session共享所需的jar包,需要注意tomcat的版本对应。

    commons-pool-1.6.jar

    jedis-2.1.0.jar

    tomcat-redis-session-manager-1.2-tomcat-6.jar

    3,修改tomcat的context.xml配置

    到tomcat的conf目录下找到context.xml配置文件,在标签<Context>下添加:

    1. <!-- 利用redis 进行session 共享 -->  

    2. <Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve" />  

    3. <Manager className="com.radiadesign.catalina.session.RedisSessionManager"  

    4. host="127.0.0.1"  

    5. port="6379"  

    6. password="root"  

    7. database="0"  

    8. maxInactiveInterval="3600"/>  

    提供的配置中默认没有password属性,我们可以查看tomcat-redis-session-manager-1.2-tomcat-6.jar的源码,可以在RedisSessionManager.class中找的password属性。参加java培训时一定要努力学习这块的知识,非常重要的。

     

    4,复制tomcat修改各个tomcat的端口

    配置完了tomcat和redis共享的配置之后,我们就可以将此tomcat复制多份,然后修改tomcat的端口,如:

    tomcat1:Server port="8005",Connector port="8080",ajp Connector port="8009"

    tomcat2:Server port="8006",Connector port="8081",ajp Connector port="8010"

    tomcat3:Server port="8007",Connector port="8082",ajp Connector port="8011"

    3,nginx配置

    1,注释默认访问

    在ngix的nginx/conf.d/下有个default.conf,将里面的listen 80 default_server改为:

    listen 80;

    2,在添加需要负载的应用服务器

    在ngix的nginx/conf.d/的创建一个conf,如test.conf。在里面添加upstream pool配置段,将各个需要负载服务器的地址填到下面:

    1. upstream pool{  

    2.     server 127.0.0.1:8080;  

    3.     server 127.0.0.1:8081;  

    4.     server 127.0.0.1:8082;  

    5. }  

    3,配置访问域名

    继续在test.conf中添加:

    1. server {  

    2.     listen 80 default_server;  

    3.     server_name www.test.cn;  

    4.     gzip on;  

    5.     gzip_min_length  1k;  

    6.     gzip_buffers     4 16k;  

    7.     gzip_http_version 1.0;  

    8.     gzip_comp_level 2;  

    9.     gzip_types  text/plain application/x-javascript text/css application/xml;  

    10.     gzip_vary on;  

    11.     location / {  

    12.       proxy_set_header Host $host;  

    13.       proxy_set_header X-Forwarded-For $remote_addr;  

    14.       proxy_connect_timeout   3;  

    15.       proxy_send_timeout      30;  

    16.       proxy_read_timeout      30;  

    17.       proxy_pass http://pool;  

    18.   }  

    19.   error_page 500 502 503 504 /50x.html;  

    20.   location = /50x.html{  

    21.       root /home/workspace/server/apache-tomcat-6.0.41-8080/webapps/test;  

    22.   }  

    23.   if ($host != 'www.test.cn' ){  

    24.     rewrite ^/(.*)$ http://www.test.cn/$1 permanent;  

    25.   }  

    26.    

    27. }  

    4,配置静态资源访问

    1. server {  

    2.      listen 80;  

    3.      server_name static.test.cn;  

    4.      location /static {  

    5.            root /home/workspace/server/apache-tomcat-6.0.41-8080/webapps/test;  

    6.      }  

    7.      location /media {  

    8.            root /home/workspace/file;  

    9.      }  

    10. }  

    5,修改请求体的大小

    在http {}里增加 client_max_body_size属性,此属性会影响很多的地方,例如上传。

    client_max_body_size 100m;

    4,启动nginx和tomcat,测试

    测试负载均衡:

    启动nginx和所有tomcat,然后到网页登录,然后启动另一个tomcat,关闭上一个。查看是否还能访问。开启所有tomcat用工具发起大量请求,查看请求是否被分发到各个tomcat。

    测试session共享:

    启动nginx和一个tomcat,然后到网页登录,然后启动另一个tomcat,关闭上一个。查看是否还在登录状态。

  • 相关阅读:
    laravel 查询
    好友数量
    laravel 更新
    laravel 多对多关联 attach detach sync
    laravel zh-CN
    laravel 框架后台主菜单接口
    Visual Studio 2012 Update 3
    IIS7 禁止目录运行脚本
    [驱动力]读书笔记
    [Python Essential Reference, Fourth Edition (2009)]读书笔记
  • 原文地址:https://www.cnblogs.com/plan123/p/5546215.html
Copyright © 2011-2022 走看看