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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Nginx >内容正文

Nginx

Docker(二)-在Docker中部署Nginx实现负载均衡【完整教程】

發布時間:2023/12/4 Nginx 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Docker(二)-在Docker中部署Nginx实现负载均衡【完整教程】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、前言

【查看完整視頻教程(免費),請拉直文尾】

在前面的文章中我們已經介紹了如何在Centos7系統中安裝Docker以及利用Docker進行Asp.Net Core應用的部署。在本文中,我們將繼續介紹利用Docker部署Nginx服務實現負載均衡。文章最后附有Nginx部署的視頻全過程。

注:查看公眾號歷史文章,獲知Asp.Net Core應用部署視頻教程

二、環境

CentOS7, Docker-ce

三、Nginx服務部署

1.首先我們需要查找Nginx的鏡像

docker search nginx

2.從鏡像列表中選取其中一個,拉取到本地

docker pull nginx

-nginx:?鏡像名稱,如果需要特定版本可使用<imageName>:<tag>進行拉取

3.快速啟動,在容器中加載鏡像文件,并運行

docker run -d -it -p 8080:80 --name nginx8080 nginx

-?-d:?后臺運行

- -p 8080:80:?端口映射,<本地映射端口>:<容器端口>

- --name nginx8080: 容器名稱,名稱自定義

-nginx:在2中得到的鏡像名稱

4.查看Nginx所在容器的狀態

docker ps

5.也可以通過瀏覽器或者使用命令查看Nginx服務

curl http://192.168.138.200:8080/

-192.168.138.200:8080: <本地IP>:<本地映射端口>

6.將容器中Nginx服務的配置文件及首頁文件復制到本地

docker?cp?nginx8080:/etc/nginx?~/nginx docker?cp?nginx8080:/usr/share/nginx/html?~/nginxwww

-nginx8080: Nginx服務容器名稱

-/etc/nginx:?Nginx服務配置文件存放目錄

-?~/nginx:?本地配置文件存放目錄,自定義

- /usr/share/nginx/html: Nginx服務html文件默認存放目錄

- ~/nginxwww: 本地html文件存放目錄,自定義

7.刪除的當前Nginx服務,因為我們前面建立的這個Nginx服務是為了驗證它能在Docker中運行,以及6中能將默認的配置文件復制到本地(偷懶的步驟)。現在目的都已經達到了,它也就完成自己的使命了。

docker?stop?nginx8080 docker?rm?nginx8080

--nginx8080: Nginx服務容器名稱

8.將本地文件映射到容器中,再部署Nginx服務。把配置文件放在本地,這樣就可以方便我們修改。

docker?run?-d?-it?-p?8080:80?--name?nginx8080?-v?~/nginx:/etc/nginx?-v?~/nginxwww:/usr/share/nginx/html?--link=markjiang_dockerdemo:demo?nginx

- -v?~/nginx:/etc/nginx: 將本地的配置文件所在目錄映射到容器中

- -v?~/nginxwww:/usr/share/nginx/html: 將本地的首頁文件映射到容器中

- --link=marijiang_dockerdemo:demo:?link連接器,使得容器間可進行單向通信,即Nginx服務可使用別名demo訪問容器markjiang_dockerdemo,格式<目標容器名稱>:<別名>,別名在Nginx所在容器內部使用

9.查看容器狀態

docker ps

10.修改本地配置文件nginx.conf

vi?~/nginx/nginx.conf

編輯nginx.conf文件,在http節點內添加以下內容,并保存

server?{ listen???????80; server_name??localhost; location / { root???/usr/share/nginx/html; index index.html index.htm; } location /api/ { proxy_pass?http://demo/api/; } }

- listen?80:?Nginx在容器中占用的端口

-?location /:?因為我只想轉發api的請求,首頁文件直接使用Nginx服務自身的即可,因此特地聲明一個路徑

- location?/api/:?將包含"/api/"的請求全部轉發到真正的.Net服務中

-proxy_pass?http://demo/api/:?demo即為8中定義的別名

11.重啟Nginx服務,讀取最新的配置文件

docker restart nginx8080

-nginx8080: Nginx服務容器名稱

12.在瀏覽器中查看或者使用命令向Nginx服務發出api請求

curl?http://192.168.138.200:8080/api/values

13.新增一個Asp.Net Core應用,用于負載均衡

docker?run?-d?-it?-p?8091:80 --name?markjiang_dockerdemo2?markjiang/dockerdemo

-markjiang/dockerdemo: 使用原有的鏡像即可

14.修改本地配置文件nginx.conf

vi?~/nginx/nginx.conf

編輯nginx.conf文件,在server節點內修改以下內容,并保存

server?{ listen???????80; server_name??localhost; location / { root???/usr/share/nginx/html; index index.html index.htm; } location /api/ { proxy_pass?http://apiserver/api/; } } upstream apiserver { server?demo?weight=1; server demo2 weight=1; }

- proxy_pass?http://apiserver/api/:?apiserver為服務器組名,自定義

-?upstream apiserver: 定義服務器組

-?weight=1: 負載均衡中該服務所占的權重,權重自定義

15.重建Nginx服務,添加新服務別名,讀取最新的配置文件,實現負載均衡

docker?stop nginx8080 docker?rm?nginx8080 docker run -d -it -p 8080:80 --name nginx8080 -v ~/nginx:/etc/nginx -v ~/nginxwww:/usr/share/nginx/html --link=markjiang_dockerdemo:demo --link=markjiang_dockerdemo2:demo2 nginx

16.關于.Net應用部署

在我的這個例子中,還是會將.Net應用的端口映射到本地端口中,可以讓客戶端直接調用,但在實際應用中,因為有了Nginx進行反向代理,我們的.Net應用就不需要把端口暴露出來,這樣跟外界隔絕了會更加安全,因此我們在執行docker run命令時,只要將?-p 8090:80參數刪掉就可以了。

以下視頻,請帶上耳機開始聆聽

往期教程:

.NET開發框架(一)-框架介紹與視頻演示

.NET開發框架(二)-框架功能簡述

.NET開發框架(三)-高可用服務器端設計

.NET開發框架(四)-服務器IIS實踐教程

.NET開發框架(五)-IIS上部署ASP.NET Core項目教程

.NET開發框架(六)-架構設計之IIS負載均衡(視頻)

.NET開發框架(七)-技術棧學習目錄

.NET開發框架(八)-服務器集群之網絡負載平衡(視頻)

.NET開發框架(九)-NLB網絡負載平衡配置實戰(視頻)

Hyper-V + CentOS7 安裝視頻教程

Hyper-V + CentOS7 網絡設置(視頻教程)

Docker(一)-CentOS7中安裝Docker視頻教程

CentOS7 vsftp 安裝與配置(視頻教程)

.NET Core跨平臺部署于Docker(Centos)- 視頻教程

Ocelot - .Net Core開源網關

Ocelot(二)- 請求聚合與負載均衡

Ocelot(三)- 服務發現

Ocelot(四)- 認證與授權

Ocelot(五)- 流量限制、服務質量

Ocelot(六)- 架構圖


Exceptionless - .Net Core開源日志框架

Exceptionless(二) - 使用進階

你點的每一個"在看",

我都當成了喜歡!

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Docker(二)-在Docker中部署Nginx实现负载均衡【完整教程】的全部內容,希望文章能夠幫你解決所遇到的問題。

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