【每日一记11】NET CORE在Linux下部署并且用Nginx 做负载均衡(主要说明CentOS)
  

新手781833 1649

{{ttag.title}}
1、安装.NET Core Runtime
首先需要安装.NET Core Runtime: https://dotnet.microsoft.com/dow ... tos/runtime-current

进入上面网站,然后选择CentOS,之后再右面可以看到CentOS 8 和CentOS 7的安装命令,根据自己的CentOS版本选择,如下图:









2、上传.net core文件
把编译好的.net core 文件拷贝到CentOS服务器中(上传工具很多,比如WinSCP,MobaXterm,文件路径和上传工具根据自己喜好选择创建)







上传成功后,进入对应目录,可以使用 dotnet DockerCoreDemo.dll,运行程序,成功界面如下:







也可以指定端口号启动,比如执行命令:dotnet DockerCoreDemo.dll --urls http://*:2677  运行程序,成功界面如下:







到这里我们的程序已经可以运行,并且同个网段的电脑也是可以访问的,如下图:(页面比较简单,大家知道怎么用就行了)







我们已经学会在Linux下部署asp .net core 程序了是不是很有自豪感;有同学会说了,这个启动没用的,远程断了,起的服务也就断了,所以我们要做守护进程

3、守护进程
下面我们看下如何做守护进程:

首先在/etc/systemd/system 下新建文件(可以使用WinSCP,MobaXterm),文件名以.service结尾,配置内容为(注意:中文注释需要删掉,否则部分 Linux 服务器会报错):
7
[Unit]
Description=dockercoredemo   #服务描述,随便填就好

[Service]
WorkingDirectory=/root/coredemo/DockerCoreDemo/bin/Debug/netcoreapp3.1   #工作目录,填你应用的绝对路径
ExecStart=/usr/bin/dotnet /root/coredemo/DockerCoreDemo/bin/Debug/netcoreapp3.1/DockerCoreDemo.dll --urls http://*:2677    #启动:前半截是你dotnet的位置(一般都在这个位置),后半部分是你程序入口的dll,中间用空格隔开 注意:--urls http://*:2677是配置端口号
Restart=always  
RestartSec=25 #如果服务出现问题会在25秒后重启,数值可自己设置
SyslogIdentifier=dockercoredemo  #设置日志标识,此行可以没有
User=root   #配置服务用户,越高越好
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target


写完配置文件后保存,输入指令确认服务:

systemctl enable (你的服务名).service   

例如:systemctl enable dockercoredemo.service;

然后启动服务  systemctl start dockercoredemo.service

然后查看一下服务状态:systemctl status dockercoredemo   出现状态说明服务运行正常。



当然这只是基础,服务我们肯定是要做负载均衡,才能保证程序的健壮性,下面我们看怎么做负载均衡:



4、安装Nginx
安装Nginx:

sudo yum install nginx
安装完成后,启用并启动Nginx服务:

sudo systemctl enable nginx
sudo systemctl start nginx
启动成功后,直接浏览器访问你的 IP 地址,如果看到如下效果说明安装成功:



Centos 7下安装nginx,使用yum install nginx

5、配置Ngin
修改 nginx.conf 配置代理:

然后我们再回来配置Nginx,进入 /etc/nginx,然后 vi 修改nginx.conf ,保存



复制代码
    upstream dotnetblogserver1 {
            server 127.0.0.1:2677;
            server 127.0.0.1:2678;
    }

    server {
       listen   8881;
       server_name core.idotnet5.com;

        location /{
            proxy_pass   http://dotnetblogserver1;
            index  index.html index.htm;
        }

        location = /50x.html {
            root   html;
        }
    }
复制代码
完整nginx.conf为

View Code
修改后,重启 nginx:

然后执行sudo nginx -s reload 来重启nginx。

从配置文件中可以看出,我们配置了两个服务地址,分别是

            server 127.0.0.1:2677;
            server 127.0.0.1:2678;
这就是说明Nginx监听这本服务2677和2678这两个端口号,而nginx自身的端口号是8881;
然后我们按照步骤3的守护进程,起两个对应端口的服务;
然后在其他机器上访问你的服务地址:8881,如192.168.101.129:8881  

打赏鼓励作者,期待更多好文!

打赏
1人已打赏

小鱼儿 发表于 2023-9-2 15:44
  
楼主分享的案例很实用,具有典型性,希望有更多这样的干货供我们学习参考,非常感谢!
唐三平 发表于 2023-9-2 15:45
  
楼主分享的案例很实用,具有典型性,希望有更多这样的干货供我们学习参考,非常感谢!
鲤鲤 发表于 2023-9-2 15:48
  
楼主分享的案例很实用,具有典型性,希望有更多这样的干货供我们学习参考,非常感谢!
小西北 发表于 2023-9-2 15:48
  
楼主分享的案例很实用,具有典型性,希望有更多这样的干货供我们学习参考,非常感谢!
小德 发表于 2023-9-2 15:52
  
楼主分享的案例很实用,具有典型性,希望有更多这样的干货供我们学习参考,非常感谢!
日出 发表于 2023-9-2 15:52
  
楼主分享的案例很实用,具有典型性,希望有更多这样的干货供我们学习参考,非常感谢!
德德 发表于 2023-9-2 15:57
  
楼主分享的案例很实用,具有典型性,希望有更多这样的干货供我们学习参考,非常感谢!
飞飞侠 发表于 2023-9-2 15:57
  
楼主分享的案例很实用,具有典型性,希望有更多这样的干货供我们学习参考,非常感谢!
焱燚 发表于 2023-9-2 16:02
  
楼主分享的案例很实用,具有典型性,希望有更多这样的干货供我们学习参考,非常感谢!
发表新帖
热门标签
全部标签>
每日一问
每周精选
技术笔记
技术盲盒
2024年技术争霸赛
产品连连看
2023技术争霸赛专题
干货满满
技术咨询
标准化排查
新版本体验
通用技术
技术晨报
功能体验
自助服务平台操作指引
文档捉虫活动
信服课堂视频
秒懂零信任
GIF动图学习
答题自测
每日一记
运维工具
SDP百科
技术圆桌
排障笔记本
专家问答
在线直播
安装部署配置
测试报告
解决方案
项目案例
存储
技术争霸赛
卧龙计划
畅聊IT
MVP
网络基础知识
升级
安全攻防
上网策略
日志审计
问题分析处理
流量管理
云计算知识
用户认证
原创分享
sangfor周刊
VPN 对接
SANGFOR资讯
专家分享
技术顾问
信服故事
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
迁移
加速技术
产品预警公告
玩转零信任
信服圈儿
S豆商城资讯
「智能机器人」
追光者计划
深信服技术支持平台
社区帮助指南
答题榜单公布
纪元平台
华北区拉练
天逸直播
以战代练
山东区技术晨报
齐鲁TV
华北区交付直播
北京区每日一练

本版达人

新手89785...

本周建议达人

新手78183...

本周分享达人