日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

最新 Docker 部署nginx Tocmat跑项目(解决springBoot启动两次的问题)

發布時間:2024/4/19 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 最新 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 &quot;%r&quot; %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启动两次的问题)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。