最新 Docker 部署nginx Tocmat跑项目(解决springBoot启动两次的问题)
1.先把tomcat项目跑起来,再往nginx上面配置
1.1拉取tomcat
docker pull tomcat:8
1.2运行tomcat (这里使用8080端口,因为nginx使用80端口)
docker run -di -p 8080:8080 --name=mytomcat1 tomcat:8
1.3将war包放到tomcat的webapps目录下(我这里默认是在root目录下,自己确定自己的当前路径)
docker cp project.war mytomcat1:/usr/local/tomcat/webapps/project.war
1.5 去掉项目名先将他复制出来
docker cp mytomcat1:/usr/local/tomcat/conf/server.xml server.xml
1.6在server.xml的Host标签中添加
这里分为两种情况
第一种非springBoot War项目的 linux部署
//docBase是你的项目名字
<Context path="" docBase="project" debug="0"/>
第二种 springBootWar包linux部署
将appbase设置为空,docbase设置为绝对路径
<Host name="localhost" appBase=""unpackWARs="true" autoDeploy="true"><Context path="" docBase="/usr/local/tomcat/webapps/project" debug="0"/><Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"prefix="localhost_access_log" suffix=".txt"pattern="%h %l %u %t "%r" %s %b" /></Host>
ps;这里说下 appBase跟docBase的区别
appBase目录表示:
1 这个目录下面的子目录将自动被部署为应用。
2 这个目录下面的.war文件将被自动解压缩并部署为应用
docBase指向了你某个应用的目录,这个可以和appBase没有任何关系。
总结:
如果你想自己指定路径,那么应该在docBase里面
如果你想简单,那么直接把他们复制到appBase下面就行
这个区别摘自:https://blog.csdn.net/chenxiaodan_danny/article/details/45397765
1.7再将文件覆盖到容器中
docker cp server.xml mytomcat1:/usr/local/tomcat/conf/server.xml
1.8重启tomcat
docker stop mytomcat1
docker start mytomcat1
这个时候访问项目: ip:8080 是可以正常访问的(如果有问题,请不要进行下面的操作)
2.拉取nginx
docker pull nginx
2.1:创建运行nginx镜像(走80端口)443端口用于设置https具体看另外一篇
docker run -di --name=nginx -p 80:80 -p443:443 nginx /bin/bash //创建Nginx容器
2.2 测试Nginx
浏览器地址栏输入:ip 是可以正常访问的
2.3配置反向代理
将nginx.conf复制出来
docker cp nginx:/etc/nginx/nginx.conf nginx.conf
2.4查看tomcat的ip地址
我这里是172.17.0.6,每个都不同自行替换哈
docker inspect mytomcat1|grep "IPAddress"
2.4修改nginx.conf(将upstream tomcat的ip替换为tomcat的ip)
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;sendfile on;
#tcp_nopush on;keepalive_timeout 65;
#开启压缩,提高网站的访问效率
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
#gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary off;
gzip_disable "MSIE [1-6]\.";upstream tomcat {server 172.17.0.4:8080;
}
server {listen 80;
server_name localhost;
location / {proxy_pass http://tomcat;
index index.html index.htm;
}
}include /etc/nginx/conf.d/*.conf;
}
2.5 将修改后的配置文件拷贝到容器
docker cp nginx.conf nginx:/etc/nginx/nginx.conf
2.6 重启nginx
docker restart nginx
2.7 测试
ip地址
最新 Docker 部署nginx Tocmat跑项目(解决springBoot启动两次的问题)相关推荐
- 在用docker部署nginx时,出现curl: (6) Could not resolve host: localhsot; 未知的错误
在用docker部署nginx时,出现错误 问题一 问题 分析 解决 问题二 问题 分析 解决 问题一 问题 使用curl www.baidu.com命令出现 curl: (6) Could not ...
- 使用docker部署nginx搭建简单的idea-2019 jrebel插件激活服务器
使用docker部署nginx搭建简单的idea-2019 jrebel插件激活服务器 前言 之前用的jrebel激活方式一直都是用的 *lanyus* 大神的 [jrebel激活](http://i ...
- docker部署nginx 并实现反向代理 配置多个域名多个端口
文章目录 docker部署nginx 并实现反向代理 配置多个域名多个端口 1. 安装nginx: 2. 以终端的方式打开镜像容器 default.conf: nginx.conf: 3. 在linu ...
- Docker学习篇——使用Docker部署账单微服务项目
Docker概念 Docker 是一个开源的应用容器引擎 诞生于 2013 年初,基于 Go 语言实现, dotCloud 公司出品(后改名为Docker Inc) Docker 可以让开发者打包他们 ...
- Docker部署nginx、配置域名
文章目录 背景 1. 拉取nginx镜像 2. 启动nginx 3. 通过docker修改nginx配置 1) 挂载配置文件 2) 重新加载配置文件 4. 配置我的域名 小结 背景 docker ...
- docker初体验:docker部署nginx负载均衡集群
Docker 是一个用于开发,交付和运行应用程序的开放平台.Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件.今天来为大家演示一下docker部署nginx负载均衡集群 环境 ce ...
- docker初体验:docker部署nginx服务
Docker 是一个用于开发,交付和运行应用程序的开放平台.Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件.今天来为大家演示一下docker部署nginx 环境 centos7 ...
- docker部署nginx并且挂载文件夹和文件
docker部署nginx并且挂载文件夹和文件 2018年05月30日 10:18:32 丢你刘某 阅读数:2315 这段时间在研究docker,在部署nginx时遇到了坑,最主要的问题是在挂载文件和 ...
- docker nginx tomcat mysql_使用docker部署nginx+tomcat架构(2):访问mysql数据库
上一篇完成了通过docker部署nginx+tomcat的基础软件架构,但是距离一个真正可用的软件架构还差得很远.其中最重要的一点是缺少数据库这个角色的存在,那么本篇就来完善这一点. 废话少说,直接进 ...
最新文章
- 为反对种族歧视,GitHub正在把master/slave等术语替换掉
- latex 编译Underfull \hbox (badness 10000) in paragraph警告
- Cannot read property 'nodeType' of null; audio元素默认样式下载按钮
- 艺龙十万级服务器监控系统开发的架构和心得
- 虚拟机的网络连接三种形式的说明
- BZOJ-2190-仪仗队-SDOI2008-欧拉函数
- 【工作相关】公子龙:工作后我变强了,暂时没秃
- Web设计师须知的10项SEO技巧
- AD PCB导出Gerber文件(非常详细的步骤)
- Django-创建一个完整的项目-详细教程
- 部分软件可以正常打开,但图标无法正常显示
- OpenCV每日函数 WeChat QR 微信二维码检测器
- Hive(二):with as用法
- 个人热爱软件编程,我对自己做了一个总结
- FPGA学习-9-ip核之ARM
- 用Obspy读取segy的文件头并保存到csv数据库
- aspen和python一起使用_aspen plus 能不能用python
- thinkphp网站提示缓存文件写入失败
- cisco 3550
- 当用户流失比较明显后,如何提升活跃度?
热门文章
- 进入环境_如何进入Windows恢复环境(WinRE)
- Vuex新手的理解与使用
- Unity3D学习(七):Unity多重采样抗锯齿设置无效的解决办法
- 给JBoss种蛊分析
- idea maven 创建webapp项目没有src目录
- plupload+artdialog实现多平台文件上传
- Ubuntu12下安装redis(多图版)+ Jedis连接Redis
- 转:两种转换mysql数据编码的方法-latin1转utf8
- 利用dns解析来实现网站的负载均衡
- [Python人工智能] 二十九.什么是生成对抗网络GAN?基础原理和代码普及(1)