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

歡迎訪問 生活随笔!

生活随笔

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

Nginx

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

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

一、前言

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

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

二、環(huán)境

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所在容器的狀態(tài)

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.查看容器狀態(tài)

docker ps

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

vi?~/nginx/nginx.conf

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

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 /:?因為我只想轉發(fā)api的請求,首頁文件直接使用Nginx服務自身的即可,因此特地聲明一個路徑

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

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

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

docker restart nginx8080

-nginx8080: Nginx服務容器名稱

12.在瀏覽器中查看或者使用命令向Nginx服務發(fā)出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節(jié)點內修改以下內容,并保存

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應用就不需要把端口暴露出來,這樣跟外界隔絕了會更加安全,因此我們在執(zhí)行docker run命令時,只要將?-p 8090:80參數刪掉就可以了。

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

總結

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

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