docker-compose部署tomcat集群和nginx负载均衡_小伙子什么车的博客-程序员宝宝

技术标签: Docker  docker  

docker-compose.yml

version: "3"

#虚拟网络配置,分配虚拟IP地址,当前配置使容器之间组成局域网(与driver的选择有关)
networks:
  my-net:
    driver: bridge
    ipam:
      driver: default
      config:
        - subnet: 192.168.0.0/24   #设置子网地址空间(容器IP范围)

services:

  nginx:
    image: nginx
    container_name: "mynginx"
    networks:
      my-net:
        ipv4_address: 192.168.0.2 #指定nginx容器IP地址
    ports:
      - "80:80" #对主机80端口的访问会映射到容器的80端口
    volumes:
      - /usr/local/docker/docker-compose/nginx/nginx.conf:/etc/nginx/nginx.conf
      - /usr/local/docker/docker-compose/nginx/log:/var/log/nginx
      - /usr/local/docker/docker-compose/nginx/html:/usr/share/nginx/html
    #tomcat启动完成再启动nginx
    depends_on:
      - tomcat-1
      - tomcat-2
      - tomcat-3

  tomcat-1:
    image: tomcat
    container_name: "mytomcat-1"
    networks:
      my-net:
        ipv4_address: 192.168.0.3
    ports:
      - "8081:8080"
    restart: "always"
    volumes:
      - /usr/local/docker/docker-compose/tomcat-cluster/tomcat-1/conf:/usr/local/tomcat/conf
      - /usr/local/docker/docker-compose/tomcat-cluster/tomcat-1/logs:/usr/local/tomcat/logs
      - /usr/local/docker/docker-compose/tomcat-cluster/tomcat-1/webapps:/usr/local/tomcat/webapps

  tomcat-2:
    image: tomcat
    container_name: "mytomcat-2"
    networks:
      my-net:
        ipv4_address: 192.168.0.4
    ports:
      - "8082:8080"
    restart: "always"
    volumes:
      - /usr/local/docker/docker-compose/tomcat-cluster/tomcat-2/conf:/usr/local/tomcat/conf
      - /usr/local/docker/docker-compose/tomcat-cluster/tomcat-2/logs:/usr/local/tomcat/logs
      - /usr/local/docker/docker-compose/tomcat-cluster/tomcat-2/webapps:/usr/local/tomcat/webapps

  tomcat-3:
    image: tomcat
    container_name: "mytomcat-3"
    networks:
      my-net:
        ipv4_address: 192.168.0.5
    ports:
      - "8083:8080"
    restart: "always"
    volumes:
      - /usr/local/docker/docker-compose/tomcat-cluster/tomcat-3/conf:/usr/local/tomcat/conf
      - /usr/local/docker/docker-compose/tomcat-cluster/tomcat-3/logs:/usr/local/tomcat/logs
      - /usr/local/docker/docker-compose/tomcat-cluster/tomcat-3/webapps:/usr/local/tomcat/webapps

Nginx配置文件nginx.conf


user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    
    worker_connections  1024;
}


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

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    keepalive_timeout  65;

    sendfile        on;

	# 需要注意的是如果tomcat都部署在docker内,这里的ip地址填对应docker容器的ip和端口号
	# 注意ip和端口的对应,这里容易把端口号写成宿主机开放的端口号
    upstream tomcat-cluster {
    
        server 192.168.0.3:8080;
		server 192.168.0.4:8080;
		server 192.168.0.5:8080;
    }

    server {
    
	    listen       80;
	    server_name  localhost;

	    location / {
    
	    		proxy_pass http://tomcat-cluster;
	    }


	    # redirect server error pages to the static page.
	    #error_page  404              /404.html;
	    error_page   500 502 503 504  /50x.html;

	    location = /50x.html {
    
			root   /usr/share/nginx/html;
	    }
	}
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_40507817/article/details/104300667

智能推荐

C++程序设计作业③(书本题)_Laughing_LC的博客-程序员宝宝

作业题目:假设某销售公司有一般员工、销售员工和销售经理。月工资的计算方法是:一般员工月薪=基本工资销售员工月薪=基本工资+销售额提成率销售经理月薪=基本工资+职务工资+销售额*提成率编写程序,定义一个表示一般员工的基类Employee,它包含三个表示员工基本信息的数据成员:编号 number、姓名name 和基本工资basicSalary。由Employee类派生销售员工Salesma...

Intel VT入门_zhoujiaxq的博客-程序员宝宝

前言  传说中的VT貌似很神秘的样子,关于VT入门的资料又很少,于是研究了一番由于资源有限,自身水平亦有限,并且是闭门造车之作,如有错误的地方请指正,不胜感激!关于VT可以先参考海风月影写的关于VT调试器http://bbs.pediy.com/showthread.php?t=96122 运行环境操作系统: windows XP CPU : intel i3-

STM32中的几个时钟SysTick、FCLK、SYSCLK、HCLK_番茄可乐的博客-程序员宝宝

在STM32中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL。①、HSI是高速内部时钟,RC振荡器,频率为8MHz。②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。③、LSI是低速内部时钟,RC振荡器,频率为40kHz。④、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。⑤、PLL为锁相环倍频输出,其时钟输入源可选择为HSI/...

Neutron DVR实现multi-host特性打通东西南北流量提前看(by quqi99)_quqi99的博客-程序员宝宝

作者:张华 发表于:2014-03-07版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明(http://blog.csdn.net/quqi99 )Legacy Routing and Distributed Router in Neutron 先温习下l3-agent原理:l3-agent节点为所有subnet创建内部网关...

【转自猫大】宏定义的黑魔法 - 宏菜鸟起飞手册_或许对了的博客-程序员宝宝

宏定义在C系开发中可以说占有举足轻重的作用。底层框架自不必说,为了编译优化和方便,以及跨平台能力,宏被大量使用,可以说底层开发离开define将寸步难行。而在更高层级进行开发时,我们会将更多的重心放在业务逻辑上,似乎对宏的使用和依赖并不多。但是使用宏定义的好处是不言自明的,在节省工作量的同时,代码可读性大大增加。如果想成为一个能写出漂亮优雅代码的开发者,宏定义绝对是必不可少的技能(虽然宏本身可能...

Android 缓存目录 Context.getExternalFilesDir()和Context.getExternalCacheDir()方法_weixin_34107955的博客-程序员宝宝

一、基础知识应用程序在运行的过程中如果需要向手机上保存数据,一般是把数据保存在SDcard中的。大部分应用是直接在SDCard的根目录下创建一个文件夹,然后把数据保存在该文件夹中。这样当该应用被卸载后,这些数据还保留在SDCard中,留下了垃圾数据。如果你想让你的应用被卸载后,与该应用相关的数据也清除掉,该怎么办呢?通过Context.getExternalFilesDir()方法可以获取到 ...

随便推点

qt 5 屏幕翻转问题_qq_37113873的博客-程序员宝宝_qt5取消了qws

qt 5  取消了 qws,使用了 QGraphicsView,  这里提供了使用的一些方法,如果有更好的,欢迎大家指正。方法一: #include #include #include MainWindow w; QGraphicsScene *scene = new QGraphicsScene; QGraphicsProxyWidget *widg

ES5,6,7浅析_机智的皮卡丘的博客-程序员宝宝

ECMAScript ES是EXMAScript的简称,是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)通过ECMA-262标准化的脚本程序设计语言。这种语言在万维网上应用广泛,它往往被称为JavaScript或JScript,但实际上后两者是ECMA-262标准的实现和扩展。历史1998年6

身份验证绕过漏洞分析_kali_Ma的博客-程序员宝宝_http-basic认证绕过漏洞

0x01 前言最近Tenable 披露了Arcadyna 网络设备身份验证绕过漏洞,并且很多的厂商都采用产生漏洞的组件,由于Arcadyan 设备固件厂商并没有开源出来,在官网支持里面下载的文件是window和linux 下和设备连接的客户端软件,无法对漏洞点开展分析,这里我们使用同样受影响的华硕产品DSL-AC3100 的固件来进行设备分析。并且复现在网络设备中网络检测ping 功能的远程命令执行漏洞,从而开启设备telentd。0x02 华硕DSL-AC3100 固件我们从华硕的官网中下载固件。

因为造轮子,我一个月就转正了_Java后端技术的博客-程序员宝宝

往期热门文章:1,《往期精选优秀博文都在这里了!》2、面试 Google, 我失败了!3、去掉烦人的 “ ! = null " (判空语句)4、干掉可恶的 "try ca...

java程序读取excel表格并存入mysql数据库详细教程_adobehu的博客-程序员宝宝

0)poi简单介绍Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。HSSF - 提供读写Microsoft Excel格式档案的功能。XSSF - 提供读写Microsoft Excel OOXML格式档案的功能。HWPF - 提供读写Microsoft Word格式档案的功能。HSLF ...

IMX6学习记录(17)-编译官方SDK,制作镜像,DD烧录_Jun626的博客-程序员宝宝_nxp-imx6-sdk

上面是我创建的群聊,欢迎新朋友的加入。1.下载地址:https://www.nxp.com.cn/products/processors-and-microcontrollers/arm-processors/i.mx-applications-processors/i.mx-6-processors/i.mx-6ull-single-core-processor-with-arm-c..._1671465600