zoukankan      html  css  js  c++  java
  • nginx-tomcat负载均衡redis-session共享,静态资源分离

    nginx-tomcat负载均衡redis-session共享。静态资源分离

    基本环境:

    redis-2.8

    apache-tomcat-6.0.41

    nginx1.6.2

    1redis配置

    1,配置redis訪问password

    redis的文件夹下找的redis.conf,解开requirepass凝视(此属性用于设置password)。

    如:

    requirepass root

    2,启动redis

    redis的文件夹以后台执行的方式启动redis

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

    2tomcat准备工作

    1,准备tomcat应用server

    部署一个应用到tomcat,将里面的须要静态处理的文件,比如img。单独存放在一个文件夹下,如static以下。

    将用户产生的媒体文件存放到一个共用的文件夹下,如/data/media下。后面用nginx配置处理。

    2。加入tomcatredissession共享的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,改动tomcatcontext.xml配置

    tomcatconf文件夹下找到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属性。

     

    4。复制tomcat改动各个tomcat的port

    配置完了tomcatredis共享的配置之后,我们就能够将此tomcat复制多份,然后改动tomcat的port。如:

    tomcat1Server port="8005"Connector port="8080"ajp Connector port="8009"

    tomcat2Server port="8006"Connector port="8081"ajp Connector port="8010"

    tomcat3Server port="8007"Connector port="8082"ajp Connector port="8011"

    3nginx配置

    1,凝视默认訪问

    ngixnginx/conf.d/下有个default.conf。将里面的listen 80 default_server改为:

    listen 80;

    2,在加入须要负载的应用server

    ngixnginx/conf.d/的创建一个conf,如test.conf。在里面加入upstream pool配置段。将各个须要负载server的地址填到以下:

    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。启动nginxtomcat,測试

    測试负载均衡:

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

    測试session共享:

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

  • 相关阅读:
    sc 使用
    sql端点应用
    今天面试笔试了一道SQL面试题,狠简单
    指定域的名称或安全标识SID与该域的信任信息不一致
    查询登陆时间间隔不超过5分钟的所有记录
    sql打开xls
    Android控件开发
    android开发1【转】网络设备状态检测
    google.maps Simple Polylines
    Notification 使用详解(很全
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/6914219.html
Copyright © 2011-2022 走看看