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
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;
}
}
}
作业题目:假设某销售公司有一般员工、销售员工和销售经理。月工资的计算方法是:一般员工月薪=基本工资销售员工月薪=基本工资+销售额提成率销售经理月薪=基本工资+职务工资+销售额*提成率编写程序,定义一个表示一般员工的基类Employee,它包含三个表示员工基本信息的数据成员:编号 number、姓名name 和基本工资basicSalary。由Employee类派生销售员工Salesma...
前言 传说中的VT貌似很神秘的样子,关于VT入门的资料又很少,于是研究了一番由于资源有限,自身水平亦有限,并且是闭门造车之作,如有错误的地方请指正,不胜感激!关于VT可以先参考海风月影写的关于VT调试器http://bbs.pediy.com/showthread.php?t=96122 运行环境操作系统: windows XP CPU : intel i3-
在STM32中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL。①、HSI是高速内部时钟,RC振荡器,频率为8MHz。②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。③、LSI是低速内部时钟,RC振荡器,频率为40kHz。④、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。⑤、PLL为锁相环倍频输出,其时钟输入源可选择为HSI/...
作者:张华 发表于:2014-03-07版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明(http://blog.csdn.net/quqi99 )Legacy Routing and Distributed Router in Neutron 先温习下l3-agent原理:l3-agent节点为所有subnet创建内部网关...
宏定义在C系开发中可以说占有举足轻重的作用。底层框架自不必说,为了编译优化和方便,以及跨平台能力,宏被大量使用,可以说底层开发离开define将寸步难行。而在更高层级进行开发时,我们会将更多的重心放在业务逻辑上,似乎对宏的使用和依赖并不多。但是使用宏定义的好处是不言自明的,在节省工作量的同时,代码可读性大大增加。如果想成为一个能写出漂亮优雅代码的开发者,宏定义绝对是必不可少的技能(虽然宏本身可能...
一、基础知识应用程序在运行的过程中如果需要向手机上保存数据,一般是把数据保存在SDcard中的。大部分应用是直接在SDCard的根目录下创建一个文件夹,然后把数据保存在该文件夹中。这样当该应用被卸载后,这些数据还保留在SDCard中,留下了垃圾数据。如果你想让你的应用被卸载后,与该应用相关的数据也清除掉,该怎么办呢?通过Context.getExternalFilesDir()方法可以获取到 ...
qt 5 取消了 qws,使用了 QGraphicsView, 这里提供了使用的一些方法,如果有更好的,欢迎大家指正。方法一: #include #include #include MainWindow w; QGraphicsScene *scene = new QGraphicsScene; QGraphicsProxyWidget *widg
ECMAScript ES是EXMAScript的简称,是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)通过ECMA-262标准化的脚本程序设计语言。这种语言在万维网上应用广泛,它往往被称为JavaScript或JScript,但实际上后两者是ECMA-262标准的实现和扩展。历史1998年6
0x01 前言最近Tenable 披露了Arcadyna 网络设备身份验证绕过漏洞,并且很多的厂商都采用产生漏洞的组件,由于Arcadyan 设备固件厂商并没有开源出来,在官网支持里面下载的文件是window和linux 下和设备连接的客户端软件,无法对漏洞点开展分析,这里我们使用同样受影响的华硕产品DSL-AC3100 的固件来进行设备分析。并且复现在网络设备中网络检测ping 功能的远程命令执行漏洞,从而开启设备telentd。0x02 华硕DSL-AC3100 固件我们从华硕的官网中下载固件。
往期热门文章:1,《往期精选优秀博文都在这里了!》2、面试 Google, 我失败了!3、去掉烦人的 “ ! = null " (判空语句)4、干掉可恶的 "try ca...
0)poi简单介绍Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。HSSF - 提供读写Microsoft Excel格式档案的功能。XSSF - 提供读写Microsoft Excel OOXML格式档案的功能。HWPF - 提供读写Microsoft Word格式档案的功能。HSLF ...
上面是我创建的群聊,欢迎新朋友的加入。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