ubuntu16.04 tomcat集群

一.创建容器

1.Dockerfile 版本指定7.0

from tomcat:7.0.82
COPY  sources.list  /etc/apt/sources.list
EXPOSE 8080

2.sources.list 源

# deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted
deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb [arch=amd64] https://download.docker.com/linux/ubuntu xenial stable

3.生成tomcat镜像

docker build -t pic:latest .

4.生成两个tomcat容器

#pic1 容器
docker run -v /home/eva/src1:/usr/local/tomcat/webapps  --name pci1  -d -p 18080:8080 pic:latest

#pic2容器
docker run -v /home/eva/src2:/usr/local/tomcat/webapps  --name pci2  -d -p 28080:8080 pic:latest

然后把项目war包,分别拷贝到src1和src2目录下

5.生成redis容器

docker run --name redis -d -p 6379:6379 redis:latest

6.查看所有正在运行的容器,停止,启动,重启

[email protected]:/home/eva# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                     NAMES
dd60175f3224        pic:latest          "catalina.sh run"        9 seconds ago       Up 9 seconds        0.0.0.0:28080->8080/tcp   pci2
81e115052997        pic:latest          "catalina.sh run"        39 seconds ago      Up 39 seconds       0.0.0.0:18080->8080/tcp   pci1
9ea719f54b31        redis:latest        "docker-entrypoint.s…"   10 hours ago        Up 14 minutes       0.0.0.0:6379->6379/tcp    redis
[email protected]:/home/eva# docker stop dd6
dd6
[email protected]:/home/eva# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                       PORTS                     NAMES
dd60175f3224        pic:latest          "catalina.sh run"        19 seconds ago      Exited (143) 2 seconds ago                             pci2
81e115052997        pic:latest          "catalina.sh run"        49 seconds ago      Up 48 seconds                0.0.0.0:18080->8080/tcp   pci1
9ea719f54b31        redis:latest        "docker-entrypoint.s…"   10 hours ago        Up 14 minutes                0.0.0.0:6379->6379/tcp    redis
[email protected]:/home/eva# docker start dd6
dd6
[email protected]:/home/eva# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                     NAMES
dd60175f3224        pic:latest          "catalina.sh run"        26 seconds ago      Up 1 second         0.0.0.0:28080->8080/tcp   pci2
81e115052997        pic:latest          "catalina.sh run"        56 seconds ago      Up 55 seconds       0.0.0.0:18080->8080/tcp   pci1
9ea719f54b31        redis:latest        "docker-entrypoint.s…"   10 hours ago        Up 14 minutes       0.0.0.0:6379->6379/tcp    redis
[email protected]:/home/eva# docker restart 81e11
81e11
[email protected]:/home/eva# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS                     NAMES
dd60175f3224        pic:latest          "catalina.sh run"        34 seconds ago       Up 10 seconds       0.0.0.0:28080->8080/tcp   pci2
81e115052997        pic:latest          "catalina.sh run"        About a minute ago   Up 1 second         0.0.0.0:18080->8080/tcp   pci1
9ea719f54b31        redis:latest        "docker-entrypoint.s…"   10 hours ago         Up 15 minutes       0.0.0.0:6379->6379/tcp    redis
[email protected]:/home/eva#

二.nginx 负载均衡配置

1.在nginx.conf中的server{}节点上面添加

#和 sever节点同级
include ttt/*.conf;

2.在nginx.conf 同级创建ttt目录,里面添加aslan.conf配置文件

upstream www.aslan.com{
    server 127.0.0.1:18080 weight=1;
    server 127.0.0.1:28080 weight=1;
 }
server {
    listen 80;
    server_name wwww.aslan.com;
    location / {
        proxy_pass http://www.aslan.com;
    }
}

3.检查nginx配置文件是否有问题

[email protected]:/usr/local/nginx/sbin# ./nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

4.重启nginx

[email protected]:/usr/local/nginx/sbin# ./nginx -s reload
[email protected]:/usr/local/nginx/sbin# 

5.访问nginx

负载均衡没问题

三.Cookie的使用

(1)在用户登录的时候,生成名为aslan_login_token的cookie。

(2)在获取用户信息的时候,检查名为aslan_login_token的cookie的值。如果有值解析出来对于的值(暂为user)

比如用户登录时在pic1服务器,在获取用户信息的时候被分配到了pic2服务器。通过使用aslan_login_token解决session登录共享的问题。即单点登录的问题。

四.Redis存储对象

五.

原文地址:https://www.cnblogs.com/snakejia/p/8419494.html

时间: 2024-11-13 08:55:45

ubuntu16.04 tomcat集群的相关文章

Tomcat集群环境下session共享方案梳理(1)-通过memcached(MSM)方法实现

对于web应用集群的技术实现而言,最大的难点就是:如何能在集群中的多个节点之间保持数据的一致性,会话(Session)信息是这些数据中最重要的一块.要实现这一点, 大体上有两种方式: 一种是把所有Session数据放到一台服务器上或者数据库中,集群中的所有节点通过访问这台Session服务器来获取数据: 另一种就是在集群中的所有节点间进行Session数据的同步拷贝,任何一个节点均保存了所有的Session数据. Tomcat集群session同步方案有以下几种方式: 1)使用tomcat自带的

memcached演练(3) 使用memcached搭建tomcat集群

上篇文章,已经明确了tomcat集群的必要性,主要从高可用和高并发量考虑.一般使用tomcat集群搭建,都要使用前置设一个nginx或apache作个反向代理,将请求转发给后端tomcat.使用tomcat集群,必然会引来session数据共享问题.如何解决这个问题?可借助memcached实现. 主要内容 测试单台tomcat的吞吐率 搭建apache+mod_jk+2个tomcat集群环境 搭建apache+mod_jk+2个tomcat+memcached集群环境 对比2个环境的吞吐率情况

MSM实现tomcat集群中session共享的高可用

目录 1.测试环境概述 2.MSM简介 2.1.MSM的特性 2.2.MSM要解决的问题 2.3.MSM的工作原理 3.环境搭建 3.1.memcached安装 3.2.jkd与tomcat安装配置 3.3.MSM sticky session + kryo模式的配置 3.4.MSM no-sticky session + kryo模式的配置 4.思考与总结 1.测试环境概述 采用两台linux x64主机,主机上分别安装memcached与tomcat,memcached提供key/value

分享Java企业级开发必备高级技术(WebLogic、Tomcat集群,Apach调优)

Java自面世后就非常流行,发展迅速,对C++语言形成有力冲击.在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景,那么滋生的基于java项目也越来越多,对java运行环境的要求也越来越高,很多java的程序员只知道对业务的扩展而不知道对java本身的运行环境的调试,例如虚拟机调优,服务器集群等,所以也滋生本门课程的产生. Java企业级开发必备高级技术(WebLogic.Tomcat集群,Apach调优),刚刚买的,这个教程讲的很好,高清完整版,现低价转两个播放码,可以先

CentOS 7 学习(三)配置Tomcat集群

所谓集群,就是把多台服务器集合起来,对外提供一个接口访问,对用户来说完全透明,常用的办法就是前端放一个服务器,将用户请求分发到不同的服务器,大致有以下几种方案 1)采取DNS轮询:将用户的连接解析到不同的服务器上,这会产生一个问题,如果一个服务器宕掉,DNS无法及时更新,就会出现问题 2)反向代理服务器:将用户的连接转发到不同的服务器上,这有两种方式,一个是修改HTTP头,让用户的连接转到固定的服务器,以后不再和代理服务器交互,这会修改用户浏览器里的地址,可能会不怎么友好:如果不修改地址,用户总

Tomcat集群session复制,httpd/nginx反代Tomcat集群

   一个大型站点都会涉及到动态应用,动态应用都需要做会话保持,常见的会话保持方式就三种,一是session stick,二是session replication,三是session share,对于小型规模的tomcat集群,大多者会采用session replication方式,但阅读官方文档也好,查询大牛博客也罢,发现均有不准确之处,所以亲测成功实现之后得出如下文档,还望高人指点. 实验环境: 操作系统:CentOS 7.2 tomcat版本:tomcat-7.0.54(yum安装方式)

apache tomcat 集群 负债均衡 部署

Apache + Tomcat 配置负载均衡 此文档内容已经经过测试 JavaSDK版本: 1.6.20 Apache版本: 2.2.15    http://httpd.apache.org/ Tomcat版本: apache-tomcat-6.0.35 http://tomcat.apache.org/download-60.cgi ====================================安装javaSDK就默认安装了. apache的安装没有什么特别的,一路下一步即可,当然

实践出真知——一文教你搭建Nginx+Tomcat集群,实现负载均衡及动静分离

实践出真知--一文教你搭建Nginx+Tomcat集群,实现负载均衡及动静分离 前言 ? 想必大家对于Nginx和Tomcat都非常熟悉了,Nginx的应用非常广泛,不仅是对web静态资源非常友好,而且也是非常实用的反向代理和负载均衡软件.结合后端Tomcat的服务,从而搭建Nginx+Tomcat集群. ? 对于直接想要实践的朋友而言可以获取本文的链接中的软件包后直接看第三备份的内容. 一.集群搭建结构及拓扑 1.1集群架构图示 Nginx+Tomcat集群的结构示意图如下: 1.2系统环境与

(apache+tomcat集群+memcached番外篇)单台tomcat的session信息的2种持久化方式

为什么要实现搭建tomcat集群环境呢?主要因为单个tomcat无论从吞吐量和并发数上,会达到一定的极限.如果访问量超过单个tomcat的承受能力的话,tomcat一般要么拒绝提供服务,要么直接宕掉.所以,必须要依靠tomcat集群技术.举个最简单的例子,拿"送快件"比喻,如果一个人,5分钟送一件,一小时之内,送10个,一个人完全能胜任这项工作.假设现在到了双十一,要求1小时,送100个, 那怎么办?只能安排更多的人加入"送快件"这项工作中来.这其实和集群一个道理.