Docker部署Nginx、Tomcat集群

Tomcat集群由多个tomcat组成,使用Nginx的好处是可以实现负载均衡和动静分离。
使用Docker的好处是~~~我们不需要复杂的配置,只需要执行简单的命令就能拉取已有的官方docker镜像,再通过一条命令就能运行我们的实例了。对于多个Tomcat,我们使用相同的镜像,然后使用简单的命令,就能创建不同的tomcat container实例。


1.拉去镜像

$ docker pull tomcat:8-jre8-alpine
$ docker pull nginx:latest
$ docker images


2.创建tomcat文件夹和webapps的交换文件夹,并创建container

$ docker run --name tomcat1 -p 18080:8080 -v $PWD/webapps:/usr/local/tomcat/webapps  -d tomcat:8-jre8-alpine
# cc8d9b8bc8a90d0768df15f94ae2cb37694021cf637d0610d10eaee669b0d5bad
$ docker run --name tomcat2 -p 28080:8080 -v $PWD/webapps:/usr/local/tomcat/webapps  -d tomcat:8-jre8-alpine
# 711e6a6fd1a3f6d088b8b6f527b9c558114bdd5e1592b03a18cb3abaaaf08815

创建nginx文件夹。

$ docker run --name tmp-nginx-container -d nginx
$ docker cp tmp-nginx-container:/etc/nginx/nginx $PWD/conf
$ docker cp mynginx:/usr/share/nginx/html $PWD/html
$ docker cp mynginx:/var/log/nginx  $PWD/logs
$ docker rm -f tmp-nginx-container

运行nginx

$ docker run -p 80:80 -p 8080:8080 --name mynginx -v $PWD/html:/usr/share/nginx/html -v $PWD/conf:/etc/nginx -v $PWD/logs:/var/log/nginx -d nginx

-p 18080:8080:将容器的8080端口映射到主机的18080端口
-v 挂载目录
具体参数命令可自行google,都是些简单的常用命令。

$ docker container ls

  1. 将自己的项目放入本地的webapps目录下
    为了便于区分工程,我的项目主页获取了本地的IP和端口,分别使用18080和28080访问test项目,可以得到如下图所示信息。


    4.设置Nginx配置文件
    chrome访问服务器80端口,显示如下:

    Nginx的配置文件是nginx.conf,打开文件夹,发现里边并没有配置端口等信息,而是有一段:

    include /etc/nginx/conf.d/*.conf;

    这是将conf.d目录下的所有配置文件全部加入进来。其中这个欢迎页面的设置就是在其目录下的一个名叫default.conf的文件中设置的。
    模仿此文件,我们创建自己的tomcat.conf。
    然后自己配置信息相关信息。

  2. 测试
    输入nginx地址和tomcat server 8080端口.

    多次输入我们可以发现我们对应的tomcat地址会发生变化,这就是访问到了不同的tomcat。

    6.后期扩展
    我们可以修改不同的均衡策略,比如修改weight值,和设置备份服务器等方式来实现不同的功能。
    除了负载均衡,我们还可以进行将静态文件和动态文件进行分离,这也是Nginx的重要功能之一。

原文地址:https://blog.51cto.com/13981400/2401249

时间: 2024-10-08 01:27:47

Docker部署Nginx、Tomcat集群的相关文章

docker 部署nginx+weblogic集群

测试一段时间,再来报告 docker 部署nginx+weblogic集群

Nginx+Tomcat 集群部署

1.Nginx + Tomcat 集群部署 简单配置 1 #user nobody; 2 worker_processes 4;#工作进程的个数 3 4 #error_log logs/error.log; 5 #error_log logs/error.log notice; 6 #error_log logs/error.log info; 7 8 #pid logs/nginx.pid; 9 10 11 events { 12 worker_connections 1024; #单个进程连

使用docker部署nginx+tomcat架构(3):使用docker-compose简化部署操作

经历了之前的两篇,我们已经大体上了解了docker部署容器的过程. 使用docker部署nginx+tomcat架构 使用docker部署nginx+tomcat架构(2):访问mysql数据库 不过,整个部署过程中需要手动输入很多的docker命令,稍显繁琐并且容易出错.那么有没有一种相对简洁优雅的方式来完成这些部署工作呢?答案是有的,docker-compose(一下简称“compose”)正是为此而生. 关于docker-compose(了解更多:https://docs.docker.c

nginx+tomcat集群配置(1)---根目录设定和多后端分发配置

前言: 对于javaer而言, nginx+tomcat集群配置, 已然成了web应用部署的主流. 大公司如此, 小公司亦然. 对于个人开发者而言, 资源有限, 往往多个web应用混部于一台服务器(云主机), 如何隔离访问这些服务资源? 彼此又不影响呢? nginx来为你排忧解难, ^_^. 本文将介绍tomcat的简单配置和部署, 以及nginx作为反向代理, 如何分流. 基础架构: 不成文的约定: 1). 一个tomcat容器部署一个webapp应用实例 2). url根目录访问webapp

nginx+tomcat集群配置(4)--rewrite规则和多应用根目录设定思路

前言: nginx中有一块很重要的概念, 就是rewrite规则. 它会对URL进行修改, 然后进行内部的重定向. rewrite授予了nginx更多的自由, 使得后级服务的接入更加地方便. 本文将简单讲述nginx的rewrite规则和原理, 同时讲解下如何借助rewrite实现单tomcat实例/多Web App服务 对应的多域名根目录访问. 案列目标: 首先来谈一下之前对于多Web App服务对应多域名根目录访问的方案. 注: 一个域名对应一个tomcat实例, 一个tomcat实例只包含

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

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

100513、nginx+tomcat集群+session共享(linux)

第一步:linux中多个tomcat安装和jdk安装(略) 第二步:nginx安装,linux中安装nginx和windows上有点不同也容易出错,需要编译,这里做介绍 一.安装依赖 gcc openssl-fips-2.0.2.tar.gz zlib-1.2.7.tar.gz pcre-8.21.tar.gz 下载linux版本的安装包,如果不下载安装包,可以在线安装命令: yum install gcc-c++ yum install -y pcre  pcre-devel yum inst

手把手教你用Docker部署一个MongoDB集群

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中最像关系数据库的.支持类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引.本文介绍了如何使用Docker搭建MongoDB集群. 本文我会向大家介绍如何使用Docker部署一个MongoDB集群,具体如下: 2.6.5版本的MongoDB 有3个节点的副本集(Replica set) 身份验证 持久化数据到本地文件系统 首先要准备三个运行的Docker服务器,这意味着你

使用docker部署nginx+tomcat架构(2):访问mysql数据库

上一篇完成了通过docker部署nginx+tomcat的基础软件架构,但是距离一个真正可用的软件架构还差得很远.其中最重要的一点是缺少数据库这个角色的存在,那么本篇就来完善这一点. 废话少说,直接进入正题. 首先拉取mysql镜像: docker pull mysql:5.7 创建本地mysql目录: mkdir -p ~/mysql/data ~/mysql/conf ~/mysql/logschmod -R 777 ~/mysql/logs 在mysql/conf目录下创建配置文件my.c

Nginx+Tomcat集群部署

为了获取更好的性能,我们常常需要将tomcat进行集群部署.下文通过nginx转发实现tomcat集群,并通过nginx-upstream-jvm-route插件保证session的粘滞. 应用场景环境: server1 服务器上安装了 nginx + tomcat01 server2 服务器上只安装了 tomcat02 server1 IP 地址: 192.168.1.88 server2 IP 地址: 192.168.1.89 安装步骤: 1)在server1 上安装配置 nginx + n