Windows VMWare Centos Docker部署Nginx并配置對Springboot應用的訪問代理

?前置博文

Windows VMWare Centos環境下安裝Docker并配置MySqlhttps://blog.csdn.net/u013224722/article/details/148928081
Windows VMWare Centos Docker部署Springboot應用https://blog.csdn.net/u013224722/article/details/148958480

# 將已存在的容器設置為宿主機重啟后自動運行
$sudo docker update --restart always dapi

一、Docker中安裝使用Nginx

1、拉取Nginx鏡像

sudo docker pull nginx:latest

2、創建目錄用于存儲拷貝出的nginx配置文件

? ? ? ? conf目錄存放配置文件,conf.d為nginx給出的的默認配置文件,html為存放html資源的目錄,logs存放nginx 的日志文件,ssl目錄存放ssl證書用于配置https

sudo mkdir -p /home/duel/workspace/nginx/{conf,conf.d,html,logs,ssl}

3、啟動Nginx

sudo docker run --name nginx -d -p 80:80 nginx:latest

4、Nginx啟動后,拷貝出配置文件

sudo docker cp nginx:/etc/nginx/nginx.conf /home/duel/workspace/nginx/conf/ #復制配置文件
sudo docker cp nginx:/etc/nginx/conf.d /home/duel/workspace/nginx
sudo docker cp nginx:/usr/share/nginx/html /home/duel/workspace/nginx #復制基本的html界面

5、停止Nginx容器并刪除

# 停止運行, 移除容器
sudo docker stop nginx# 刪除所有停止狀態的容器
sudo docker container prune

6、創建Html靜態文件

? ? ? 在拷貝出的存儲nginx配置文件的目錄中,添加一個用于測試的 html,路徑和源碼如下。

<!DOCTYPE html>
<html lang="en"><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"><meta charset="UTF-8"><title>dweb</title>
</head>
<body>
<h1>Hi!</h1>
<p>This is dweb index.html</p>
<p>The file is located on VMware Centos Os "/home/duel/workspace/dweb"</p>
</body>
</html>

7、新建Nginx配置文件

? ? ?在conf.d目錄下,新增了兩個文件,分別為對靜態文件解析的? dweb.conf 以及對前置文章中所示創建的Springboot應用訪問相關配置。

# 訪問靜態文件
server {listen       38080;server_name  localhost;location / {root   /usr/share/nginx/html/dweb;index  index.html index.htm;}location ~* \.(html|css|js|png|jpg|gif|ico|mp4|mkv|rmvb|flv|eot|svg|ttf|woff|woff2|pptx|rar|zip)$ {root /usr/share/nginx/html/dweb;autoindex on;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   /usr/share/nginx/html;}
}

? Nginx 38081 端口的訪問自動轉發至 Springboot應用端口號。?

# 訪問前文中記錄的  Springboot應用
# 8093是發布的Springboot應用使用的端口server {listen       38081;server_name  localhost;location / {proxy_pass http://192.168.23.134:8093; // 端口轉發}
}

8、基于新建的配置文件,重新創建Nginx容器

sudo docker run --name nginx -p 80:80 -p 443:443 -p 38080:38080 -p 38081:38081 -v /home/duel/workspace/nginx/html:/usr/share/nginx/html -v /home/duel/workspace/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/duel/workspace/nginx/conf.d:/etc/nginx/conf.d -v /home/duel/workspace/nginx/logs:/var/log/nginx -v /home/duel/workspace/nginx/ssl:/etc/nginx/ssl -d --restart=always nginx:latest

sudo docker run --name nginx -p 80:80 -p 443:443 -p 38080:38080 -p 38081:38081

-v /home/duel/workspace/nginx/html:/usr/share/nginx/html

-v /home/duel/workspace/nginx/conf/nginx.conf:/etc/nginx/nginx.conf

-v /home/duel/workspace/nginx/conf.d:/etc/nginx/conf.d

-v /home/duel/workspace/nginx/logs:/var/log/nginx

-v /home/duel/workspace/nginx/ssl:/etc/nginx/ssl

-d --restart=always nginx:latest

9、VMWare Centos中測試

打開Firefox瀏覽器、通過設置的38080端口,訪問dweb目錄下放置的index.html文件,成功!

通過設置的 38081 端口,訪問Springboot應用提供的數據接口,成功!

10、回到Windows宿主機中測試

? ? ? ?回到Windows宿主機,通過Chrome瀏覽器,訪問在 VMWare Centos Docker 中發布的靜態文件以及 Springboot數據接口,均成功!

二、錯誤的嘗試

1 、?靜態文件目錄未映射到容器內部

? ? ? ? 瀏覽器訪問報錯 “404 Not Found”

? ? ? ? 在使用 Docker 運行 Nginx 容器時,通常需要將宿主機上的文件和目錄映射到容器內部,以便于管理配置文件、靜態資源等。若將靜態文件放在其他目錄,如下所示,將靜態文件放在了“/home/duel/workspace/dweb” 目錄下,創建Nginx容器時 用的指令“-v? /home/duel/workspace/nginx/html:/usr/share/nginx/html” 只把 “/home/duel/workspace/nginx/html”目錄映射進了容器內容。這時,Nginx啟動后,瀏覽器訪問報錯 “404 Not Found”。

server {listen       38080;server_name  localhost;location / {root   /home/duel/workspace/dweb; // 這個目錄在容器中不會映射index  index.html index.htm;}location ~* \.(html|css|js|png|jpg|gif|ico|mp4|mkv|rmvb|flv|eot|svg|ttf|woff|woff2|pptx|rar|zip)$ {root /home/duel/workspace/dweb;  // 這個目錄在容器中不會映射autoindex on;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   /usr/share/nginx/html;}
}

? ? ? ? 解決方法:將dweb目錄拷貝到? ./nginx/html 目錄下,并修改 conf 中的root,?./nginx/html 目錄下的文件會被映射。

server {listen       38080;server_name  localhost;location / {root   /usr/share/nginx/html/dweb; // 映射后的目錄index  index.html index.htm;}

2、端口轉發使用localhost或127.0.0.1

? ? ? ? 瀏覽器訪問報錯 “502 Bad Gateway”

? ? ? ? 在docker容器里,容器的IP和宿主機的IP是不一樣的,127.0.0.1指向的是容器內部的ip。所以無法通過127.0.0.1去進行代理,必須把localhost或127.0.0.1 換成服務器的IP。

? ? 使用:proxy_pass http://127.0.0.1:8093 報 502 Bad gateway

? ? 使用:proxy_pass http://localhost:8093 報 502 Bad gateway

? ? ?需要使用主機的ip,如下:

server {listen       38081;server_name  localhost;location / {proxy_pass http://192.168.23.134:8093; // 使用Centos系統IP}
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/87501.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/87501.shtml
英文地址,請注明出處:http://en.pswp.cn/web/87501.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

暑期數據結構第一天

暑期數據結構第一天 數據元素與數據對象 數據元素--組成數據的基本單位 與數據的關系&#xff1a;是集合的個體 數據對象--性質相同的數據元素的集合 與數據的關系&#xff1a;集合的子集 邏輯結構 &#xff08;1&#xff09;線性結構&#xff0c;所有結點都最多有一個直…

vsCode 擴展中 package.nls.json 文件的作用國際化支持

package.nls.json 代表英文語言文件 {"command.favourite.addtofavourite": "Add to Favourite","command.favourite.deletefavourite": "Remove from Favourite","command.favourite.moveup": "Move Up" } 在 …

結構型智能科技的關鍵可行性——信息型智能向結構型智能的轉換(提綱)

結構型智能科技的關鍵可行性 ——信息型智能向結構型智能的轉換 1.信息型智能科技概述 1.1傳統計算機科技的信息型繼承者 1.2 信息型智能環境 1.3信息型智能主體 1.4機器學習創造的智能 1.5信息型智能科技的問題 2.結構型智能科技概述 2.1傳統計算機科技向真實生命結構…

Excel 數據合并助手SheetDataMerge智能識別同類數據,銷售報表處理提升效率

各位Excel小能手們&#xff01;今天給大家介紹個超厲害的玩意兒——SheetDataMerge&#xff0c;這可是專注Excel數據處理的實用工具&#xff01;它就像個數據小管家&#xff0c;核心功能就是智能合并工作表里的同類數據。 軟件下載地址安裝包 它有多牛呢&#xff1f;能自動識別…

AIStarter平臺使用指南:如何一鍵卸載已下載的AI項目(最新版操作教程)

如果你正在使用 AIStarter 平臺&#xff0c;但不知道如何卸載不再需要的 AI 項目&#xff0c;那么這篇簡明教程將為你提供清晰的操作指引。 AIStarter 是由知名創作者“熊哥”打造的一款 AI 工具啟動器平臺&#xff0c;旨在幫助用戶快速部署和運行各類 AI 項目。隨著平臺不斷更…

項目中大表治理方案實踐

一、業務背景 目前生產庫數據庫服務器數據存儲達到了13T&#xff0c;其中license_spart表數據量達到了200億&#xff0c;占用7.5T&#xff0c;空間占用率達到54%。而且這張表每年數據增長量達到30億。其中有效VALID數據占20億&#xff0c;無效數據INVALID占180億。由于業務上有…

快應用(QuickApp)技術解析與UniApp跨端開發生態探秘優雅草卓伊凡

快應用&#xff08;QuickApp&#xff09;技術解析與UniApp跨端開發生態探秘優雅草卓伊凡引言&#xff1a;一場由快應用引發的技術辯論近日&#xff0c;優雅草科技的資深開發者卓伊凡在與甲方的一次項目溝通中&#xff0c;因技術選型問題展開了激烈討論。甲方對快應用&#xff0…

《Font Awesome 參考手冊》

《Font Awesome 參考手冊》 引言 Font Awesome 是一個功能豐富的圖標庫,旨在幫助設計師和開發者快速地在網頁上添加圖標。它提供了超過700個矢量圖標,并且支持響應式設計。本文將為您詳細介紹 Font Awesome 的使用方法、圖標分類、圖標定制以及與 CSS 的結合。 一、Font A…

Linux基本命令篇 —— uname命令

uname命令是Linux系統中用于顯示系統信息的實用工具&#xff0c;它可以提供關于操作系統、內核版本、硬件架構等重要信息。下面我將詳細介紹這個命令的用法和常見應用場景。 目錄 一、基本語法 二、常用選項 三、使用示例 顯示所有系統信息&#xff08;最常用&#xff09; …

React Native 開發環境搭建--window--android

官網&#xff1a; https://reactnative.cn/docs/environment-setup 必須安裝的 node, JDK ,android Studio 安裝node 以前裝了nvm, 用nvm install 18.0.0 就可以了 安裝JDK 1、下載 ---- 我安裝的是11 【JAVA17下載傳送門】 注意&#xff01;&#xff01;&#xff01;1 …

ODS 系統是什么?企業為什么需要搭建 ODS?

目錄 一、ODS 系統基礎認知&#xff1a;先弄明白它是啥 1. 什么是 ODS 系統&#xff1f; 2. ODS 系統的起源 3. ODS 系統的特點 二、ODS 系統能干啥&#xff1f;核心功能解析 1. 數據集成 2. 數據清洗和轉換 3. 實時數據更新 4. 數據查詢和分析 三、企業為什么非得搭…

通過網頁調用身份證閱讀器http websocket方法-華視電子————仙盟創夢IDE

1.安裝全瀏覽器網頁專用監控軟件 2.安裝后 3.配置web接口 4.測試讀取 5.驅動監控地址 時間段內讀取身份證:如超時時間10000ms,則在點擊按鈕10秒內,放上身份證就可以讀成功,超時返回失敗; 讀身份證:把身份證放上去后點擊讀卡,讀成功,再次讀卡需要將身份證拿起來再放回去; 不拿…

Spring Cloud 前端調用后端接口方式

在 Spring Cloud 微服務架構中&#xff0c;前端調用后端接口通常不直接通過 Eureka&#xff0c;而是通過以下兩種核心方式實現&#xff1a; 一、前端直接調用后端服務&#xff08;需解決跨域和地址管理問題&#xff09; 1. AJAX 直接調用 前端通過 HTTP 請求&#xff08;如 …

【stm32】HAL庫開發——CubeMX配置RTC,單片機工作模式和看門狗

目錄 一、CubeMX配置RTC 1.RTC實時重要一環——BKP 寄存器 2.RTC實時時鐘 2.1打開RTC并設置時間 2.2打開外部低速時鐘 2.3代碼實現&#xff1a; 二、單片機工作模式 1.低功耗睡眠模式(Sleep) 2.低功耗停止模式(Stop) 3.低功耗待機模式(StandBy) 三、看門狗 1.獨立看…

9.Docker的容器數據卷使用(掛載)

什么是容器數據卷技術&#xff1f; 到這里&#xff0c;我算是入門docker了&#xff01; docker的理念&#xff1a;將環境和應用打包成一個鏡像&#xff01;直接安裝就能使用 如果數據都在容器中&#xff0c;那么我們一旦將容器刪除&#xff0c;數據就會丟失&#xff01;因為…

使用 TCollector 寫入 TDengine

TCollector 是 openTSDB 的一部分&#xff0c;它用來采集客戶端日志發送給數據庫。 只需要將 TCollector 的配置修改指向運行 taosAdapter 的服務器域名&#xff08;或 IP 地址&#xff09;和相應端口即可將 TCollector 采集的數據存在到 TDengine 中&#xff0c;可以充分利用…

高斯消元法詳解

文章目錄 概念用法特殊情況 我的奇怪方法 概念 什么是高斯消元?讓我們看一看 OI-Wiki 的解釋&#xff1a; 高斯消元法&#xff08;Gauss–Jordan elimination&#xff09;是求解線性方程組的經典算法&#xff0c;它在當代數學中有著重要的地位和價值&#xff0c;是線性代數課…

暴雨服務器成功中標華中科技大學集成電路學院服務器采購項目

近日&#xff0c;武漢暴雨信息發展有限公司在激烈的競爭中脫穎而出&#xff0c;成功中標華中科技大學集成電路學院的服務器采購項目。此次中標產品為暴雨旗下的塔式重裝AM400服務器&#xff0c;這一成果標志著暴雨信息在高性能計算領域的卓越實力得到了高校科研機構的高度認可。…

集群聊天服務器---MySQL數據庫的建立

數據庫的建立表格 user表 字段名稱字段類型字段說明約束idINT用戶idPRIMARY KEY, AUTO_INCREMENTnameVARCHAR(50)用戶名NOT NULL, UNIQUEpasswordVARCHAR(50)用戶密碼NOT NULLstateENUM(online, offline)當前登錄狀態DEFAULT offline friend表 字段名稱字段類型字段說明約束…

MongoDB 安裝使用教程

一、MongoDB 簡介 MongoDB 是一個高性能、開源的 NoSQL 文檔型數據庫&#xff0c;使用 BSON&#xff08;二進制 JSON&#xff09;格式存儲數據。適合存儲大規模、高并發的非結構化數據&#xff0c;常用于大數據、日志存儲、微服務架構中。 二、下載安裝 2.1 官網下載 訪問 …