一、前言

【查看完整视频教程(免费),请拉直文尾】

在前面的文章中我们已经介绍了如何在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实现负载均衡【完整教程】相关推荐

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

    一.前言 在前面的文章中我们已经介绍了如何在Centos7系统中安装Docker以及利用Docker进行Asp.Net Core应用的部署.在本文中,我们将继续介绍利用Docker部署Nginx服务实 ...

  2. Docker(二)-在Docker中部署Nginx实现负载均衡(视频)

    一.前言 在前面的文章中我们已经介绍了如何在Centos7系统中安装Docker以及利用Docker进行Asp.Net Core应用的部署.在本文中,我们将继续介绍利用Docker部署Nginx服务实 ...

  3. docker nginx 配置负载均衡

    在上篇的文章中我们介绍了docker nginx配置简单的代理 在这篇文章我们介绍docker 利用nginx配置负载均衡 所谓的负载均衡是两台服务器,或者是多台服务器上面部署项目,但是访问的方式是通 ...

  4. consul-template + nginx部署高可用负载均衡

    一.目标 1.Nginx实现负载均衡 2.consul-template动态维护Nginx里面的server 3.consul-template监控Consul集群 4.每个服务配置Consul做服务 ...

  5. 卸载nginx php mysql_centos7中配置nginx+php-fpm+swoole+mysql环境教程

    centos7在数据中心服务器中使用较为广泛,为了方便用户配置环境,本文介绍了在centos7系统下部署nginx+php-fpm+swoole+mysql环境的详细步骤. 一.运行nginx 1.新 ...

  6. Nginx动态负载均衡与配置管理

    背景 在Nginx集群有一定的规模时,比较让人头疼的问题有2个,一是如何在不reload nginx的情况下,动态更新后端rs,减少nginx reload的性能损耗,也能更好的对接到内部的部署平台: ...

  7. 架构师之路 — 部署架构 — 超大规模负载均衡架构演进

    目录 文章目录 目录 超大规模负载均衡架构演进技术路线 0.单机架构 1.HTTP 与 DB 服务器分开部署 2.引入本地缓存和分布式缓存 3.引入反向代理实现负载均衡 4.数据库读写分离 5.数据库 ...

  8. Nginx 实战-负载均衡

    一.负载均衡 今天学习一下Nginx的负载均衡.由于传统软件建构的局限性,加上一台服务器处理能里的有限性,在如今高并发.业务复杂的场景下很难达到咱们的要求.但是若将很多台这样的服务器通过某种方式组成一 ...

  9. nginx 之负载均衡 :PHP session 跨多台服务器配置

    公司一个项目单点压力越来越大,考虑到稳定性和降压,使用nginx做负载均衡,将请求分发到多个docker上去,这里记录下PHP多服务器间的会话session共享问题,解决方案是把session单独存在 ...

最新文章

  1. mysql floor报错_mysql的floor()报错注入方法详细分析
  2. Vivadoz中Block Memory Generator v8.3的使用方法(二)
  3. spring cloud的eureka.client.service-url.defaultZone配置eureka集群的写法
  4. 硬件工程师面试经历2015---笔试篇
  5. 不同符号的两个整数求余和取模的计算技巧(规律)
  6. 无法远程到2008R2的解决方法
  7. 苹果通过电商渠道降价20天后,iPhone在中国销量猛增八成
  8. freqz()计算M点滑动平均滤波器的频率响应
  9. 完美解决Win8声卡爆音破音、卡顿
  10. 计算机关闭节能模式,bios怎么关闭cpu节能模式_bios节能模式怎么设置
  11. Docker下载Nginx镜像并运行Nginx容器
  12. linux centos 网易云音乐,Centos7.4安装网易云音乐教程
  13. CharSequence接口
  14. 苹果手机透明桌面_微信界面全局透明壁纸设置教程 苹果iOS与安卓手机弄法步骤...
  15. 我国最早着手建设专用计算机广域网的是,计算机网络信息技术在畜牧养殖方面应用...
  16. 9:参数校验-Java Spring
  17. 性格木讷面试时如何脱颖而出?
  18. Android 高仿微信实时聊天 基于百度云推送
  19. 【12月19日】传媒行业的股票排名
  20. Franka Emika Panda连接真实机械臂(一)

热门文章

  1. 谷歌相册_Google相册中的新存档功能是什么?
  2. 深入OKHttp源码分析(二)----OkHttp任务调度核心类Dispatcher解析
  3. 深入剖析阿里云推荐引擎——新架构,新体验
  4. .NET6之MiniAPI(十五):跨域CORS(下)
  5. Kubernetes + .NET Core 的落地实践
  6. WeihanLi.Npoi 1.21.0 Released
  7. 【荐】牛逼的WPF动画库:XamlFlair
  8. Win 11 真的要来了!微软宣布 Win10 将于 2025 年终止支持!
  9. ML.NET Cookbook:(17)如何在分类数据上训练模型?
  10. 记一次 .NET 某电商交易平台Web站 CPU爆高分析