从0到1学会.net6+docker+nginx+centos7+集群+负载均衡

引用地址:https://blog.csdn.net/xiaolong2850/article/details/125011893

一、准备好.net6的项目,后台或WebAPI都可以,一般我们用WebAPI做示例;

1、新建.net6 webapi项目,新建demo控制器,增加一个api方法的简单案例,如:GetDemo

2、调试,并保证程序能正常运行;

3、发布程序;

点击webapi项目,右键→【添加】→【Docker支持】→【Linux】

项目会生成一个Dockerfile文件

修改如下

发布webapi

打开发布生成的文件夹,并进行打包

二、将发布好的webapi程序上传到centos服务器上;

将文件上传到centos的home目录(推荐使用FinalShell,国产神器,文件直接拖拉即可上传下载,修改配置直接双击修改保存即可)

 安装支持ZIP的工具

yum install -y unzip zip
解压上传的webapi文件

unzip demowebapi.zip


 三、安装docker并查看是否能正常运行;

安装docker

1、安装依赖项
sudo yum install -y yum-utils   
 
//官方:地址在国外,很慢
//sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
 
2、设置阿里云镜像源
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo   
 
3、安装docker
sudo yum install docker-ce docker-ce-cli containerd.io   
 
//如果报错了
//package docker-ce-3:19.03.8-3.el7.x86_64 requires containerd.io >= 1.2.2-3, but none of the providers can be installed
//解决方法:
//进入阿里云镜像地址:https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/edge/Packages/找到你想要的或者最新的containerd.io包,拼接在阿里云地址后面,
//如下:
yum install -y https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.13-3.1.el7.x86_64.rpm
//然后再执行
yum install docker-ce docker-ce-cli containerd.io
 
4、启动 docker
sudo systemctl start docker
 
5、测试容器
sudo docker run hello-world
 
6、设置 docker 自启
sudo systemctl enable docker
 
7、检查自启状态
systemctl list-unit-files | grep docker
查看docker状态

systemctl status docker


四、通过docker下载nginx 镜像;

docker pull nginx
 

查看docker镜像,是否已经下载在镜像列表中

docker images


五、安装.net6环境;

安装前先运行以下命令,将microsoft包签名密钥添加到受信任密钥列表,并添加microsoft包储存库

sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
安装运行时或sdk

一般安装运行时即可

sudo yum install dotnet-runtime-6.0
SDK

sudo yum install dotnet-sdk-6.0
运行下,查看.net状态及版本信息

dotnet --info


 六、通过docker生成.net6项目 webapi镜像;

回到webapi目录

cd /home/demowebapi
编译成为镜像

docker build -t demowebapi:1.0.0 .


查看docker镜像是否已生成

docker images


 添加到容器并启动

docker run --name webapi1 -d -p 8011:80 demowebapi:1.0.0


在浏览器访问8011端口 ,查看webapi是否正常

 我们开启多个容器,指定不同端口

 访问8012和8013端口是否正常

 七、配置Nginx参数,集群和负责均衡;

步骤:1、docker启动Nginx;2、获取配置文件;3、并映射到磁盘中

docker run --name nginx -d -p 80:80 nginx:latest
 创建映射的文件夹

mkdir -p /home/nginx/conf
mkdir -p /home/nginx/log
mkdir -p /home/nginx/html
从Nginx容器拷贝相关映射文件

docker cp nginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf
 
docker cp nginx:/etc/nginx/conf.d /home/nginx/conf/conf.d
 
docker cp nginx:/usr/share/nginx/html /home/nginx/


 修改/home/nginx/conf/nginx.conf 配置文件,在http块里增加 upstream 项,weight代表权重,值越高访问越频繁;

 
user  nginx;
worker_processes  auto;
 
error_log  /var/log/nginx/error.log notice;
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;
 
    upstream api_demoweb{
        server localhost:8011 weight=3;
        server localhost:8012 weight=3;
        server localhost:8013 weight=1;
 
    }
 
    include /etc/nginx/conf.d/*.conf;
}

修改/home/nginx/conf/conf.d/default.conf 配置文件

 
server {
    listen       80;
    listen  [::]:80;
    server_name  localhost;
 
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        proxy_pass http://api_demoweb;
    }
 
   
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
 
 
}
 
启动docker的nginx容器

//先停掉nginx容器再进行删除
docker stop 53da8ac26737
 
docker rm 53da8ac26737
 
//启动nginx并挂载映射的文件
//其中--net host 为映射端口,会随着配置文件server监听端口而变化,利于多端口使用;
docker run \
--net host \
--name nginx \
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /home/nginx/log:/var/log/nginx \
-v /home/nginx/html:/usr/share/nginx/html \
-d nginx:latest
八、配置完毕后,打开看结果

 至此步骤,已完成.net6 + docker +nginx 集群负载均衡了,感谢你的观看,如有误之处,敬请指出加以修正,谢谢你!
————————————————
版权声明:本文为CSDN博主「策龙先生」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xiaolong2850/article/details/125011893

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值