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

基本环境:

redis-2.8

apache-tomcat-6.0.41

nginx1.6.2

1。redis配置

1,配置redis訪问password

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

如:

requirepass root

2,启动redis

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

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

2,tomcat准备工作

1,准备tomcat应用server

部署一个应用到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属性。

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

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

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,在加入须要负载的应用server

在ngix的nginx/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. }

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,关闭上一个。查看是否还在登录状态。

nginx-tomcat负载均衡redis-session共享,静态资源分离的更多相关文章

  1. nginx+tomcat负载均衡和session复制

    本文介绍下传统的tomcat负载均衡和session复制. session复制是基于JVM内存的,当然在当今的互联网大数据时代,有更好的替代方案,如将session数据保存在Redis中. 1.安装n ...

  2. 使用nginx做负载均衡的session共享问题

    查了一些资料,看了一些别人写的文档,总结如下,实现nginx session的共享PHP服务器有多台,用nginx做负载均衡,这样同一个IP访问同一个页面会被分配到不同的服务器上,如果session不 ...

  3. Nginx和Tomcat负载均衡实现session共享(转)

    以前的项目使用Nginx作为反向代理实现了多个Tomcat的负载均衡,为了实现多个Tomcat之间的session共享,使用了开源的Memcached-Session-Manager框架. 此框架的优 ...

  4. Nginx和Tomcat负载均衡实现session共享

    以前的项目使用Nginx作为反向代理实现了多个Tomcat的负载均衡,为了实现多个Tomcat之间的session共享,使用了开源的Memcached-Session-Manager框架. 此框架的优 ...

  5. linux+nginx+tomcat负载均衡,实现session同步

    第一部分:nginx反向代理tomcat 一.软件及环境 软件 系统 角色 用途 安装的软件 ip地址 Centos6.5x86_64 nginx 反向代理用户请求 nginx 172.16.249. ...

  6. Tomcat 负载均衡 及Session共享

    原文:https://www.sunjianhua.cn/archives/tomcat-high-availability.html 一.安装java环境 二.安装tomcat(apache-tom ...

  7. nginx+tomcat+redis负载均衡及session共享

    概述 本文档是用来详细描述 nginx+tomcat+redis负载均衡实现session共享 所需软件及下载地址 软件名称 下载地址 功能说明 Nginx-v1.6.0 http://nginx.o ...

  8. keepalived+nginx+tomcat+redis实现负载均衡和session共享(原创)

    keepalived+nginx+tomcat+redis实现负载均衡和session共享 直接上链接,码了一天,就不再重写了,希望能帮到大家,有问题欢迎留言交流.

  9. nginx tomcat负载均衡 使用redis session共享

    环境准备 1.准备一台nginx服务器 ip192.168.1.133 端口81 安装过程: #首先安装依赖: yum -y install gcc-c++ yum -y install pcre p ...

  10. haproxy+tomcat实现负载均衡以及session共享(linux centos7环境)

    一.安装HAProxy 1.进入home目录,下载最新haproxy安装包. cd /home wget http://haproxy.1wt.eu/download/1.4/src/haproxy- ...

随机推荐

  1. iOS浏览器不能打开手机QQ客服与指定用户聊天界面

    这个问题是我在公司需求的时候遇到的,QQ推广工具网站获取的链接在苹果自带浏览器没法打开到聊天界面,是因为safair在打开到app store的时候把参数给丢了,app store再打开到QQ的时候就 ...

  2. Typora——自定义设置

    Typora提供自定义设置,在偏好设置里面,有一个主题文件夹,如果对界面的样式进行设定,可以添加一个css文件,命名规范是 github.user.css,下面代码会对h1~h4进行自动序列化 bod ...

  3. rem布局进入页面样式错乱解决

    开发项目时候第一次遇到rem布局进入页面瞬间样式错乱问题: //该段js为rem布局应用 如10px = 0.1rem; (function(doc, win) { var docEl = doc.d ...

  4. HDU_2112_最短路

    题目链接:http://acm.hdu.edu.cn/status.php?user=l1526789512&pid=2112&status=5 HDU Today Time Limi ...

  5. vue(数据改变,DOM不渲染问题)

    1.组件内部,属性值地址空间内引用地址改变,DOM不能渲染. 问题举例:this.items = [[],[],[],[]] 1.在items 中,修改任意一项数组中的值,DOM是不会更新的,2.解决 ...

  6. 王垠:写给支持和反对《完全用Linux工作》的人们

    王垠:写给支持和反对<完全用Linux工作>的人们 在一阵阵唾骂和欢呼声中,<完全用linux工作>被转载到了天涯海角.很多人支持我,也有很多人唾骂我.我不知道它是怎样流传到那 ...

  7. <MyBatis>入门七 缓存机制

    缓存机制 MyBatis包含强大的查询缓存特性,它可以非常方便的定制和配置.缓存可以极大的提升查询效率. MyBatis默认定义了两级缓存:一级缓存和二级缓存 1.默认情况下,只有一级缓存(sqlSe ...

  8. C语言二叉树的创建、(先中后序)遍历以及存在的问题

    #include<stdlib.h> #include<stdio.h> #define True 1 #define False 0 typedef char TElemTy ...

  9. PAT 1135 Is It A Red-Black Tree

    There is a kind of balanced binary search tree named red-black tree in the data structure. It has th ...

  10. 离职 mark

    昨天(2019 年 5 月 17 日),从 离职. 从 2018 年 7 月 14 日早 10 点余分到 2019 年 5 月 17 日早 10 点余分,一共 308 天整.这就是我出学校的第一份工作 ...