Docker续8:使用docker-compose部署nmt项目

news/2024/12/22 15:48:09/

[root@localhost ~]# tree -L 3 pes    文件目录结构
pes
├── docker-compose.yml
├── haproxy
│   └── haproxy.cfg
├── java
│   ├── Dockerfile
│   ├── jdk
│   │   ├── bin
│   │   ├── conf
│   │   ├── include
│   │   ├── jmods
│   │   ├── legal
│   │   ├── lib
│   │   ├── LICENSE -> legal/java.base/LICENSE
│   │   ├── man
│   │   ├── README
│   │   └── release
│   ├── src
│   │   ├── application.properties
│   │   └── Project_ExamSystem-V1.0.0.war
│   └── start.sh
├── mysql
│   ├── data
│   │   ├── auto.cnf
│   │   ├── ca-key.pem
│   │   ├── ca.pem
│   │   ├── client-cert.pem
│   │   ├── client-key.pem
│   │   ├── docker01.yuanyu.zhangmin.err
│   │   ├── ib_buffer_pool
│   │   ├── ibdata1
│   │   ├── ib_logfile0
│   │   ├── ib_logfile1
│   │   ├── ibtmp1
│   │   ├── mysql
│   │   ├── mysql.sock -> /var/run/mysqld/mysqld.sock
│   │   ├── performance_schema
│   │   ├── private_key.pem
│   │   ├── project_exam_system
│   │   ├── public_key.pem
│   │   ├── server-cert.pem
│   │   ├── server-key.pem
│   │   └── sys
│   └── project_exam_system.sql
└── web
    └── src
        └── dist
记得做hosts劫持:
192.168.1.81   bu.yuanyu.zhangmin
[root@localhost ~]# cd pes/
[root@localhost pes]# vim docker-compose.yml                      
version: "3"
services:
        web0:
                container_name: web0
                image: nginx:latest
                #ports:
                #- "80:80"
                volumes:
                - /root/pes/web/src/dist:/usr/share/nginx/html
                hostname: web01.yuanyu.zhangmin
                expose:
                - 80
        web1:
                container_name: web1
                image: nginx:latest
                #ports:
                #- "81:80"
                volumes:
                - /root/pes/web/src/dist:/usr/share/nginx/html
                hostname: web01.yuanyu.zhangmin
                expose:
                - 80
        web2:
                container_name: web2
                image: nginx:latest
                #ports:
                #- "82:80"
                volumes:
                - /root/pes/web/src/dist:/usr/share/nginx/html
                hostname: web01.yuanyu.zhangmin
                expose:
                - 80
        java0:
                container_name: java0
                build: ./java
                #ports:
                #- "8080:8080"
                volumes:
                - /root/pes/java/src/:/java/src/
                hostname: java01.yuanyu.zhangmin
        java1:
                container_name: java1
                image: pes_java:latest 
                #ports:
                #- "8080:8080"
                volumes:
                - /root/pes/java/src/:/java/src/
                hostname: java01.yuanyu.zhangmin
        java2:
                container_name: java2
                image: pes_java:latest
                #ports:
                #- "8080:8080"
                volumes:
                - /root/pes/java/src/:/java/src/
                hostname: java01.yuanyu.zhangmin
        mysql:
                container_name: mysql01
                image: mysql:5.7.44
                ports:
                - "3306:3306"
                volumes:
                - /root/pes/mysql/data:/var/lib/mysql/
        haproxy:
                container_name: haproxy01
                image: haproxy:latest
                volumes:
                - ./haproxy/:/haproxy-override
                - ./haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg
                ports:
                - "5000:5000"
                - "8888:8888"
                - "8080:8080"
                expose:
                - 5000
                - 8888
                - 8080
                links:
                - web0
                - web1
                - web2
                - java0
                - java1
                - java2
[root@localhost pes]# vim haproxy/haproxy.cfg                     //haproxy配置文件
global
        daemon
        # nbproc 1
        # pidfile /var/run/haproxy.pid
        # 工作目录
       # chroot /usr/local/etc/haproxy

defaults
        log 127.0.0.1 local0 err #[err warning info debug]
        mode http                #默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK
        retries 2                #两次连接失败就认为是服务器不可用,也可以通过后面设置
        option redispatch        #当serverId对应的服务器挂掉后,强制定向到其他健康的服务器
        option abortonclose      #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接
        option dontlognull       #日志中不记录负载均衡的心跳检测记录
        maxconn 4096             #默认的最大连接数
        timeout connect 5000ms   #连接超时
        timeout client 30000ms   #客户端超时
        timeout server 30000ms   #服务器超时
        #timeout check 2000      #=心跳检测超时

######## 监控界面配置 #################
listen admin_status
        # 监控界面访问信息
        bind 0.0.0.0:8888
        mode http
        # URI相对地址
        stats uri /dbs
        # 统计报告格式
        stats realm Global\ statistics
        # 登录账户信息
        stats auth admin:123456
########frontend配置##############

######## mysql负载均衡配置 ###############
listen proxy-mysql
        bind 0.0.0.0:3306
        mode tcp
        # 负载均衡算法
        # static-rr 权重, leastconn 最少连接, source 请求IP, 轮询 roundrobin
        balance roundrobin
        # 日志格式
        option tcplog
        # 在 mysql 创建一个没有权限的haproxy用户,密码为空。 haproxy用户
        # create user 'haproxy'@'%' identified by ''; FLUSH PRIVILEGES;
        option mysql-check user haproxy
         # 这里是容器中的IP地址,由于配置的是轮询roundrobin,weight 权重其实没有生效
        server MYSQL_1 192.168.130.100:3306 check weight 1 maxconn 2000
        server MYSQL_2 192.168.130.101:3306 check weight 1 maxconn 2000
        #server MYSQL_3 192.168.130.102:3306 check weight 1 maxconn 2000
        # 使用keepalive检测死链
        # option tcpka
#########################################

######## java负载均衡配置 ###############
listen proxy-java
        bind 0.0.0.0:8080
        mode tcp
        # 负载均衡算法
        # static-rr 权重, leastconn 最少连接, source 请求IP, 轮询 roundrobin
        balance roundrobin
        # 日志格式
        option tcplog
        # 在 mysql 创建一个没有权限的haproxy用户,密码为空。 haproxy用户
        # create user 'haproxy'@'%' identified by ''; FLUSH PRIVILEGES;
        #option mysql-check user haproxy
         # 这里是容器中的IP地址,由于配置的是轮询roundrobin,weight 权重其实没有生效
        server java0 java0:8080 check weight 1 maxconn 2000
        server java1 java1:8080 check weight 1 maxconn 2000
        server java2 java2:8080 check weight 1 maxconn 2000
        #server MYSQL_3 192.168.130.102:3306 check weight 1 maxconn 2000
        # 使用keepalive检测死链
        # option tcpka
#########################################

######## web负载均衡配置 ###############
listen proxy-web
        bind 0.0.0.0:5000
        mode http
        # 负载均衡算法
        # static-rr 权重, leastconn 最少连接, source 请求IP, 轮询 roundrobin
        balance roundrobin
        # 日志格式
        option tcplog
        # 在 mysql 创建一个没有权限的haproxy用户,密码为空。 haproxy用户
        # create user 'haproxy'@'%' identified by ''; FLUSH PRIVILEGES;
        #option mysql-check user haproxy
         # 这里是容器中的IP地址,由于配置的是轮询roundrobin,weight 权重其实没有生效
        server web0 web0:80 check weight 1 maxconn 2000
        server web1 web1:80 check weight 1 maxconn 2000
        server web2 web2:80 check weight 1 maxconn 2000
        #server MYSQL_3 192.168.130.102:3306 check weight 1 maxconn 2000
        # 使用keepalive检测死链
        # option tcpka
#########################################
[root@localhost pes]# docker-compose up -d                //运行
[root@localhost pes]# docker-compose ps                  
 


http://www.ppmy.cn/news/1520393.html

相关文章

注册安全分析报告:央视网

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

过去十年中,深度学习领域经历了许多重要的算法创新和突破。以下是一些关键的深度学习算法,按照时间顺序排列:

AlexNet (2012):这是一个重要的卷积神经网络(CNN),在2012年的ImageNet竞赛中取得了突破性的成绩。它的成功标志着深度学习在视觉任务中的潜力。 VGG (2014):牛津大学的视觉几何组(VGG)提出了VG…

jupyter 安装新内核后报找不到已安装的包

按照参考资料1 在jupyter notebook 安装上新内核后,发现在命令行里可以导入已安装的包,但在jupyter notebook 无法导入对应的包 通过调试,发现jupyter 安装新内核的python 环境的执行文件不是新内核的python执行文件,而是conda 里…

前端学习笔记-Web APIs篇-02

事件监听(绑定) 什么是事件? 事件是在编程时系统内发生的动作或者发生的事情【比如用户在网页上单击一个按钮 】 什么是事件监听? 就是让程序检测是否有事件产生,一旦有事件触发,就立即调用一个函数做出响应&#…

分类预测|基于麻雀优化正则化极限学习机的数据分类预测Matlab程序SSA-RELM 多特征输入多类别输出

分类预测|基于麻雀优化正则化极限学习机的数据分类预测Matlab程序SSA-RELM 多特征输入多类别输出 文章目录 一、基本原理1. 数据准备2. RELM模型建立3. SSA优化RELM参数4. 模型训练5. 模型评估6. 结果分析与应用原理总结 二、实验结果三、核心代码四、代码获取五、总结 分类预测…

黑神话悟空天命人mod替换

布莱泽奥特曼替换天命人MOD安装 1、解压缩。 2、将解压后得到的.pak文件复制到游戏根目录/b1/Content/Paks/~mods文件夹下,如果没有请玩家自行创建“~mods”文件夹。 3、将命令-fileopenlog添加到steam的启动命令中。(参考预览图,已执行过…

github和gitlab的区别是什么

区别:github如果使用私有仓库,是需要付费的;而gitlab可以在上面搭建私人的免费仓库。gitlab让开发团队对他们的代码仓库拥有更多的控制,相对于github,它有不少的特色:允许免费设置仓库权限;可以…

[HNCTF 2022 WEEK2]Canyource

暑假在家是真的容易颓废&#xff0c;刚开学先写一道简单的rce找回一下之前的状态。 <?php highlight_file(__FILE__); if(isset($_GET[code])&&!preg_match(/url|show|high|na|info|dec|oct|pi|log|data:\/\/|filter:\/\/|php:\/\/|phar:\/\//i, $_GET[code])){ i…