docker-compose之Nginx+Tomcat代理配置
Tomcat镜像制作与启动
Dockerfile如下
FROM docker.io/sssllc/centos7.-jdk1. #update
RUN yum -y update; yum clean all && yum install -y wget unzip tar net-tools #install jdk && tomcat
#ADD jdk-8u151-linux-x64.tar.gz /usr/local/ #原始镜像不存在jdk环境是使用(上下文有这个文件存在)
ADD tomcat7.tar.gz /usr/local/ #设置环境变量
#ENV JAVA_HOME /usr/local/jdk1..0_151 #如果有jdk环境的话略过
#ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-7.0.
ENV CATALINA_BASE /usr/local/apache-tomcat-7.0.
#ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
ENV LC_ALL en_US.UTF-8 #防止乱码 EXPOSE CMD /usr/local/apache-tomcat-7.0./bin/catalina.sh run
build镜像
docker build -t tomcat7 .
启动tomcat并将镜像push到私有仓库
//启动
docker run -itd -p : --name tomcat1 -v /data/admin-web/:/data/webapp tomcat7 #/data/webapp为tomcat代码发布目录 //push到私有仓库
docker tag tomcat7 10.10.10.12/hztest/tomcat7-jdk1.8 #首先打标签
docker push 10.10.10.12/hztest/tomcat7-jdk1.
nginx镜像配置
pull原始镜像
docker pull registry.cn-hangzhou.aliyuncs.com/kkf_centos7/nginx
自定义镜像,dockerfile如下
FROM registry.cn-hangzhou.aliyuncs.com/kkf_centos7/nginx COPY nginx.conf /etc/nginx/nginx.conf EXPOSE
nginx.conf如下
user nginx;
worker_processes ; error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid; events {
worker_connections ;
} 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; sendfile on;
tcp_nopush on; keepalive_timeout ;
types_hash_max_size ;
gzip on; #include /etc/nginx/conf.d/*.conf;
#负载均衡,下面的tomcat01和tomcat02为nginx连接tomcat容器时给容器设置的别名的名称,即配置文件写啥名,link指定的别名就为啥名
upstream tomcat_client {
server tomcat01:8080 weight=1;
server tomcat02:8080 weight=1;
} server {
server_name "";
listen 80 default_server;
listen [::]:80 default_server ipv6only=on; location / {
proxy_pass http://tomcat_client; #反向代理
proxy_redirect default;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
}
build 打包并push到私有仓库
docker build -t nginx .
docker tag nginx 10.10.10.12/hztest/nginx
docker push 10.10.10.12/hztest/nginx
启动所有容器
#注意:如果需要查看日志,需要加上log目录的映射,log目录查看dockerfile和nginx配置文件即可得到 //启动tomcat容器(两个)
docker run -itd -p :8080 --name tomcat1 -v /data/admin-web/:/data/webapp tomcat7
docker run -itd -p : --name tomcat2 -v /data/admin-web/:/data/webapp tomcat7 //启动nginx容器,指定--link,会在nginx的容器hosts文件里生成一条tomcat容器的host记录,格式为 tomcat1容器ip 容器名(tomcat1) 容器别名(tomcat02) tomcat容器主机名(containerid)
docker run --name nginx --link=tomcat1:tomcat01 --link=tomcat2:tomcat02 -p : -idt nginx #link下 第一个tomcat1为 tomcat1容器的容器名,第二个tomcat1为此容器的别名。在nginx配置文件里指定的别名
docker-compose
创建docker-compose.yml文件
version: ''
services:
nginx1:
container_name: nginx
image: 10.10.10.12/hztest/nginx
links: #links这里tomcat1为容器名,tomcat01为tomcat1的别名。nginx连接tomcat1的配置文件里,写tomcat01即可
- tomcat1:tomcat01
- tomcat2:tomcat02
ports:
- "80:80"
volumes:
- /data/logs/nginx:/var/log/nginx/
depends_on: #依赖redis启动才能启动tomcat,可忽略
- tomcat01
- tomcat02
restart: always tomcat1:
container_name: tomcat1
image: 10.10.10.12/hztest/tomcat7-jdk1.
ports:
- "8081:8080"
volumes:
- /data/admin-web:/data/webapp
- /data/logs/admin/tomcat1:/usr/local/apache-tomcat-7.0./logs
environment:
TOMCAT_SERVER_ID: tomcat_server_001 depends_on: #依赖redis起来后才能启动tomcat,如果没有可忽略
- redis restart: always tomcat2:
container_name: tomcat2
image: 10.10.10.12/hztest/tomcat7-jdk1.
ports:
- "8082:8080"
volumes:
- /data/admin-web:/data/webapp
- /data/logs/admin/tomcat2:/usr/local/apache-tomcat-7.0./logs
environment:
TOMCAT_SERVER_ID: tomcat_server_002 depends_on: #依赖redis起来后才能启动tomcat,如果没有可忽略
- redis
- rabbitmq
- mongodb restart: always
启动
docker-compose up #前台启动 docker-compose up -d #后台启动 docker-compose restart #重启
docker-compose之Nginx+Tomcat代理配置的更多相关文章
- docker,构建nginx反向代理tomcat
Nginx实现负载均衡是通过配置nginx.conf来实现的,nginx.conf的全部内容如下: user nginx; worker_processes 1; error_log /var/log ...
- nginx反向代理配置及优化
nginx反向代理配置及优化前言: 由于服务器apache抗不住目前的并发.加上前端squid配置后,问题依然无法解决.而页面程序大部分是动态.无法使用fastcgi来处理.因此想使用nginx做为反 ...
- nginx+tomcat安装配置
nginx+tomcat安装配置 # nginx+tomcat安装配置 #创建网站目录 mkdir -p /www/wwwroot cd /www #安装配置 wget http://mirrors. ...
- nginx反向代理配置实例分享
nginx反向代理配置一例. 配置内容如下: user www www; worker_processes 8; error_log /usr/local/webserver/nginx/logs/n ...
- nginx 正向代理配置
需求场景:从以下俩张图可以比较直观的理解正向代理的作用(在其他文章中会表示为“http代理”,注意当前文档的配置不支持https代理) Nginx正向代理配置文件: server{ listen de ...
- Docker Compose部署 nginx代理Tomcat集群
一.简介 使用Docker镜像部署Nginx代理的多个Tomcat集群: 使用Dockerfile构建nginx镜像 使用Dockerfile构建tomcat镜像 mysql镜像使用docker hu ...
- 使用python自动生成docker nginx反向代理配置
由于在测试环境上用docker部署了多个应用,而且他们的端口有的相同,有的又不相同,数量也比较多,在使用jenkins发版本的时候,不好配置,于是想要写一个脚本,能在docker 容器创建.停止的时候 ...
- Nginx反向代理配置可跨域
由于业务需要,同一项目中的前端代码放在静态环境中,而后端代码放在tomcat中,但此时问题却出现了:前端使用ajax请求后端获取数据时出现如下报错 XMLHttpRequest cannot load ...
- spring-boot+nginx+tomcat+ssl配置笔记
如果你的tomcat应用需要采用ssl来加强安全性,一种做法是把tomcat配置为支持ssl,另一种做法是用nginx反向代理tomcat,然后把nginx配置为https访问,并且nginx与tom ...
随机推荐
- maven打的包中含源文件jar包
如何用maven package打的jar包中还包含源文件(resource)jar包: 在pom中如下添加: <build> <plugins> <plugin> ...
- HAWQ取代传统数仓实践(七)——维度表技术之维度子集
有些需求不需要最细节的数据.例如更想要某个月的销售汇总,而不是某天的数据.再比如相对于全部的销售数据,可能对某些特定状态的数据更感兴趣等.此时事实数据需要关联到特定的维度,这些特定维度包含在从细节维度 ...
- cursor光标类型
今天早上在网上看到一篇关于光标类型的总结代码,很好,特定拿来: 最终结果: 代码: <!DOCTYPE html> <html lang="zh-cn"> ...
- GO语言打包ICO图标
1. go get github.com/akavel/rsrc2. 创建manifest文件, 命名:main.exe.manifest : <?xml version="1.0&q ...
- [转载] ffmpeg Windows下采集摄像头一帧数据,并保存为bmp图片
这里请注意,在编译ffmpeg时,不要使用--disable-devices选项. 使用 --enable-encoder=rawvideo --enable-decoder=rawvideo 启用r ...
- 网络爬虫必备知识之requests库
就库的范围,个人认为网络爬虫必备库知识包括urllib.requests.re.BeautifulSoup.concurrent.futures,接下来将结对requests库的使用方法进行总结 1. ...
- FreeMarker配置详解
首先需要添加freemarker.jar到项目,如果项目中有spring或者spirngmvc,需要整合,首先配置freemarkerConfig,代码结构如下: <!-- 设置 ...
- 微博6月底升级后 报 10017/2/statuses/share.json或者10014/2/statuses/share.json错误
一,背景 2017-06-26微博公告替换了一些接口,导致以前的: statuses/repost 转发一条微博 statuses/update 发布一条微博 statuses/upload 上传图片 ...
- 转载 iir直接i型和直接ii型滤波器
1.IIR滤波器构造 之前在介绍FIR滤波器的时候,我们提到过,IIR滤波器的单位冲击响应是无限的!用差分方程来表达一个滤波器,应该是下式这个样子的. ...
- sqlalchemy的基本的使用
参考链接:http://www.techweb.com.cn/network/system/2016-10-11/2407638.shtml http://www.cnblogs.com/renfan ...