一.负载均衡的简单配置
  1.下载nginx
  2.tomcat*2 配置不同的端口用于正常启动,在jsp中<%= session.getId()%>可以查看jSessionId,
tomcat自带的root目录的应用是session是false的,内置对象没有seesion可以打开
  3.配置nginx.conf
  upstream myserver{ #nginx代理的路径 可配置权重,长连接等
    server 127.0.0.1:8888;
    server 127.0.0.1:9999;
  }
  server {
    listen 80;
    server_name www.nginxstudy.com;   #nginx拦截的访问路径,如果这样写的话要在hosts文件中
                        # 配置127.0.0.1 www.nginxstudy.com 模拟DNS转换器功能,也可以使用localhost就不用配置了
    location / {
      proxy_pass http://myserver/1.jsp;    #对应上面的upstream后面的myserver两者要一致 1.jsp就是在服务上的一个路径
    }
  }

  4.启动两个tomcat,nginx就可以了,浏览器输入www.nginxstudy.com就可以看到访问两个不同的服务器,但是session没有实现共享.

二.nginx常用的命令
  nginx -s quit 停止ngix
  nginx -s reload 重新载入nginx(当配置信息发生修改时)
三.nginx实现session共享的方式
  1.依靠广播方式来实现的session在不同服务器上的复制
    适用场景:
      浪费带宽,服务每增加一台,要广播一倍的session,适用较少的服务器情况
    配置:
      步骤一:修改server.xml文件,最简单的集群配置只需要将节点中注释掉的下面这句取消注释即可:
      Xml代码:
        <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
        使用这样方法配置的集群会将Session同步到所在网段上的所有配置了集群属性的实例上(此处讲所在网段可能不准确,是使用Membership 的address和port来区分的。tomcat集群的实例如果在Membership配置中有相同的address和port值的tomcat被分到同一个集群里边。他们的session是相互共享的,同一个session的集群被称为一个cluster。可以配置多个cluster,但是cluster和cluster之间的session是不共享的)。也就是说如果该广播地址下的所有Tomcat实例都会共享Session,那么假如有几个互不相关的集群,就可能造成Session复制浪费,所以为了避免浪费就需要对节点多做点设置了,如下:
      Xml代码
        <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster">
        <Channel className="org.apache.catalina.tribes.group.GroupChannel">
          <Membership className="org.apache.catalina.tribes.membership.McastService"
            address="228.0.0.4"
            port="45564"
            frequency="500"
            dropTime="3000"/>
        </Channel>
      </Cluster>
      加了一个Channel,里面包了个Membership,咱们要关注的就是membership的port属性和address属性,不同的集群设置不同的port值或address值,从目前的使用来看,基本上是隔离开了。

    步骤二:修改项目的web.xml文件:
      web.xml文件的修改很简单:只需要在节点<web-app></web-app>中添加这个节点<distributable/>就可以了。
  2.使用Tomcat集群+redis的Session共享配置方法(单点登录)
    1.用户登录获取用户名,密码生成token,在redis服务中存储(token,user),并配置数据失效时间
    2.用户每次访问都要携带这个token,每次访问会先经过redis校验,通过的话就会在session中存储用户信息,并刷新失效时间
    3.用户登出,修改失效时间(redis无效件删除策略惰性删除+定期删除)
四. nginx配置高可用keeplive
  配置高可用keeplive(blog推荐顺序)
  https://blog.csdn.net/u1012410733/article/details/57078407
  https://www.cnblogs.com/youzhibing/p/7327342.html
  https://blog.csdn.net/dingsai88/article/details/51015681
五. 配置nginx长短连接的学习
  https://blog.csdn.net/dream_flying_bj/article/details/54709549
  http://blog.51cto.com/gyj110/2056555

nginx简单学习(tomcat)的更多相关文章

  1. nginx简单学习

    1.nginx的安装 .yum解决编译nginx所需的依赖包,之后你的nginx就不会报错了 yum install gcc patch libffi-devel python-devel zlib- ...

  2. JSP学习笔记(三):简单的Tomcat Web服务器

    注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...

  3. Linux yum的配置 , python环境管理, nginx搭建简单学习

    Linux yum的配置 , python环境管理, nginx搭建简单学习 一丶配置yum的数据仓库 ### yum 工具, 方便,自行解决软件之间的依赖关系. # 配置yum源仓库 (可以使用,清 ...

  4. Nginx 入门学习教程

    昨天听一个前同事说他们公司老大让他去研究下关于Nginx 方面的知识,我想了下Nginx 在如今的开发技术栈中应该会很大可能会用到,所以写篇博文记录总结下官网学习教程吧. 1. 什么是Nginx? 我 ...

  5. docker,构建nginx反向代理tomcat

    Nginx实现负载均衡是通过配置nginx.conf来实现的,nginx.conf的全部内容如下: user nginx; worker_processes 1; error_log /var/log ...

  6. 一篇文章带你了解轻量级Web服务器——Nginx简单入门

    一篇文章带你了解轻量级Web服务器--Nginx简单入门 Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件代理服务器 在本篇中我们会简单介绍Nginx的特点,安装,相关指令使用以及配置信 ...

  7. Windows 下 Docker 的简单学习使用过程之一 dockertoolbox

    1. Windows 下面运行 Docker 的两个主要工具1): Docker for Windows2): DockerToolbox区别:Docker For Windows 可以理解为是新一代 ...

  8. 负载均衡介绍及Nginx简单实现

    负载均衡介绍及Nginx简单实现 负载均衡 负载均衡介绍及Nginx简单实现 1. 介绍 2. 常用的开源软件 2.1 LVS 优点 缺点 2.2 Nginx 优点 缺点 3. 常用的开源反向代理软件 ...

  9. Nginx基础学习

    参考博客: http://www.2cto.com/os/201212/176520.html http://os.51cto.com/art/201111/304611.htm http://www ...

随机推荐

  1. Python中的print、input函数以及Python中交换两个变量解析

    一.Python中的值交换操作 首先明确一点点,Python中的一切都是面向对象的,可以理解为Python的中一切都是对象. 我们知道Java也是面向对象的语言,但是在Java中定义一个值变量如下: ...

  2. Java中的容器 I————浅谈List

    一.List接口的继承关系 List接口是Collection接口的子接口,而ArrayList和LinkedList以及Vector是其实现类. List的特点是可以将元素维护在特定的序列中,可以再 ...

  3. MyBatis sql语句使用总结

    MyBatis中Like语句使用总结 oracle数据库: SELECT * FROM user WHERE name like CONCAT('%',#{name},'%') 或 : SELECT ...

  4. js获取元素得几种情况

    HTML代码 <div class="divClass" name="myClass"> <input type="password ...

  5. 【转】基于Map的简易记忆化缓存

    看到文章后,自己也想写一些关于这个方面的,但是觉得写的估计没有那位博主好,而且又会用到里面的许多东西,所以干脆转载.但是会在文章末尾写上自己的学习的的东西. 原文出处如下: http://www.cn ...

  6. oracle实用命令入门

    登录oracle(需要在oracle用户下) 执行sqlplus,然后输入用户名和密码就可以了,如果是第一次使用oracle的话,可以直接使用sqlplus / as sysdba免密码以管理员的身份 ...

  7. plsql快速入门

    汉化plsql方法: 本来想直接使用英文版的,但是太多专业名词看不懂,只好先汉化熟悉一下先. 安装好plsq后,百度下载plsql汉化包 执行汉化包里面的安装程序,安装目标路径选择plsql的安装路径 ...

  8. XML基础入门

    一.概念 XML: Extensible  markup Language,可拓展标记语言 功能:存储数据 1.配置文件 2.在网络中传输数据 html和xml的区别: 1.xml标记全是自定义的 2 ...

  9. 使用 --image-repository 解决kubeadm 安装k8s 集群 谷歌镜像墙的问题

    从网上我们看到的好多kubeadm 安装k8s 的时候都说需要下拉取镜像,然后修改,实际上 我们可以使用配置参数,快速的跳过墙的问题 说明: 基础镜像,我们仍然存在,拉取的问题,但是dockerhub ...

  10. 【网络协议】TCP分段与IP分片

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/mmc_maodun/article/details/30109789     我们在学习TCP/IP ...