一 :nginx负载均衡

当Tomcat当做独立的Servlet容器来运行时,可看做是能运行Java Servlet的独立Web服务器。

此外 Tomcat还可以作为其他Web服务器进程内或者进程外的Servlet容器,从而与其他Web服务器集成(Apache Nginx IIS 等)

集成的意义在于:对于不支持运行java Servlet的其他Web服务器,可以通过集成Tomcat来提供运行Servlet的功能。

——————————Tomcat与JavaWeb开发技术详解(孙卫琴的一本书)

Nginx 通过Tomcat来运行Servlet容器。也可以 对集群的tomcat的负载进行均衡。(在后台多个Tomcat进行集群时,nginx把来自客户端的请求 随机分发到某一台Tomcat上)

下面看一个简单的demo

nginx.conf负载均衡的关键配置

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

  sendfile on;

  keepalive_timeout 65;

  upstream tomcatserver{
    server 119.23.50.194:9080 weight=1;
    server 119.23.50.194:8080 weight=2;
  }
  server {
    listen 80;
    server_name localhost;
    location / {
      proxy_pass http://tomcatserver;
    }
  }
}

配置表示,nignx的断开时80端口,也就是当我们直接输入ip的时候

会直接进入nginx的根路径。location / 通过proxy_pass指向server 119.23.50.194:9080(三分之一的概率);或者 server 119.23.50.194:8080(三分之二的概率);

概率可通过权重 weight配置。

思考:前端的请求会随机分发到不同的Servlet容器中。不同的tomcat session是不共享的。这样 会话跟踪会失败。

二 使用redis共享session

tomcat 集群中,可以把session放到redis数据库中,解决session不共享的问题

进入cd /home/tomcat/apache-tomcat-7/lib路径下

把redis和tomcat配置的jar添加进去

jedis-2.5.2.jar

tomcat-redis-session-manage-tomcat7.jar
commons-pool2-2.2.jar

cd /home/tomcat/apache-tomcat-7/conf/

修改 context.xml文件

<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
  host="119.23.50.194"
  port="6379"
  database="0"
  password="sunkun1210"
  maxInactiveInterval="60" />

修改cd /home/tomcat/apache-tomcat-7/webapps/ROOT/ 目录下的index.jsp(tomcat欢迎页) 方便我们测试

119.23.50.194:9080 tomcat主页上加以下代码

  <%@ page session="true" %>

  <h1>tomcat9080</h1>
  session:<%=session.getId()%>

119.23.50.194:8080 tomcat主页上加以下代码

  <%@ page session="true" %>

  <h1>tomcat8080</h1>
  session:<%=session.getId()%>

大家可以点击测试,观察 tomcat的端口虽然编号 但是sessionId没变

Redis安装步骤

Nginx安装步骤

为了保证在集群系统中,会话数据能在redis进行存储。应该保证所有存放在会话范围内的所有属性都实现了java.io.Serializable接口。

Nginx+tomcat集群使用redis共享session的更多相关文章

  1. nginx+tomcat集群负载均衡(实现session复制)

    转自:http://talangniao.iteye.com/blog/341512 架构描述 前端一台nginx服务器做负载均衡器,后端放N台tomcat组成集群处理服务,通过nginx转发到后面( ...

  2. Tomcat7.0.99集群使用Redis共享session方案

    以前配置过给予多播的session共享方案,这回再配置一个redis共享session的. 先小小的炫耀一下: 相信大家要做Tomcat+Redis+session配置,遇到的头号麻烦就是编译的tom ...

  3. nginx+tomcat实现集群,redis实现session共享,软连接实现文件共享:http://blog.csdn.net/hua1586981/article/details/78132710

    转载 2017年02月08日 16:52:41 730 相信很多人都听过nginx,这个小巧的东西慢慢地在吞食apache和IIS的份额.那究竟它有什么作用呢?可能很多人未必了解. 说到反向代理,可能 ...

  4. 【nginx+tomcat集群】Nginx1.12.2+Tomcat7集群+负载均衡+Session共享

    今天想着将项目优化一下,就想的实现集群分布,在本机测试:利用nginx+tomcat实现 通过上一篇博客(http://www.cnblogs.com/qlqwjy/p/8535235.html),N ...

  5. 160513、nginx+tomcat集群+session共享(linux)

    第一步:linux中多个tomcat安装和jdk安装(略) 第二步:nginx安装,linux中安装nginx和windows上有点不同也容易出错,需要编译,这里做介绍 一.安装依赖 gcc open ...

  6. Nginx+tomcat集群中,session的共享

    nginx,tomcat集群后多个session分配到同一个应用 单节点低负荷的情况下,我们通常把一个WEB应用打成WAR包放WEB应用服务器,如TOMCAT下运行就行了(如图1).但随着用户量的增加 ...

  7. 使用Nginx搭建Tomcat9集群,Redis实现Session共享

    使用Nginx搭建Tomcat9集群,Redis实现Session共享 1.tomcat准备 首先准备两个tomcat9 ,修改配置文件server.xml 如果在多个服务器上分别启动tomcat 则 ...

  8. Nginx+Tomcat集群+session共享

    Nginx+Tomcat集群+session共享 1)安装Nginx 2)配置多个Tomcat,在server.xml中修改端口(端口不出现冲突即可) 3)在nginx.conf文件中配置负载均衡池, ...

  9. Nginx+Tomcat集群配置

    Nginx+Tomcat集群配置 一台虚拟机作为Nginx服务 两太虚拟机配置Tomcat+jdk环境 Nginx测试 启动: cd usr/local/nginx/sbin ./nginx ---& ...

随机推荐

  1. 4.7做作业时发现,内联元素设置宽高背景以后正常不显示,但是设置了position:absolute;以后就可以显示了。起到了和display:block;一样的效果。然后查了一下知道了。

    如果内联元素定位属性设置为:absolate,元素脱离文档,即使a元素中没有内容,设置的背景依然会显示!

  2. vs2013 v8编译

    最新v8,只能在vs2015编译(在官网看了资料,新版本v8/chrome使用的c++11特性只能用vs2015编译) vs2015 vc需要的dll有近50个,发布不太方便,所以采用vs2013up ...

  3. 29. pt-table-usage

    pt-table-usage --query="select * from t01 join t02 on t01.id=t02.id where t01.code=2" pt-t ...

  4. node,Yeoman,Bower,Grunt的简介及安装

    作为前端,基本的html,css,js已经不太够用了,所以要学习一些前端自动化工具,来提高我们的生产力 1.NodeJS 先安装NodeJS,直接去官网,下载最新的版本,一定要最新的版本,这样会避免很 ...

  5. [精华][推荐] CAS SSO单点登录环境搭建及实例

    1.因为是本地模拟sso环境,而sso的环境测试需要域名,所以需要虚拟几个域名出来,步骤如下: 2.进入目录C:\Windows\System32\drivers\etc 3.修改hosts文件 12 ...

  6. 从React组件划分的纠结到总结

    在实际开发项目中,我将所有的React组件划分为容器组件和展示组件,展示组件其实就是一个纯函数组件,没有任何副作用,基本都是PureComponent.但是突然,出现了这么一个问题: 我有一个浮层组件 ...

  7. temp--内蒙农信出差

    ============================2018.09.18~~~20181001================================== -------住宿----黎明花 ...

  8. fortran常用语句--读写带注释文档、动态数组等语法

    1.判断读取文档有多少行数据(文档最后的空行不计入其中): 首先在变量定义区域下方和执行语句前声明在程序中要被调用的GetFileN函数: external GetFileN 接下来在函数外部后边写上 ...

  9. 数据结构C语言顺序表

    #include <stdio.h> #include <stdlib.h> typedef int EmenType; typedef struct Node { int d ...

  10. 20155205 郝博雅 《网络对抗技术》Exp1 PC平台逆向破解

    20155205 郝博雅 <网络对抗技术>Exp1 PC平台逆向破解 一.实验准备 1. 掌握NOP.JNE.JE.JMP.CMP汇编指令的机器码 NOP:NOP指令即"空指令& ...