Linux上部署net6应用

虚幻大学 xuhss 149℃ 0评论

Python微信订餐小程序课程视频

https://edu.csdn.net/course/detail/36074

Python实战量化交易理财系统

https://edu.csdn.net/course/detail/35475

前言

​ .net6都出来了,作为一名.net搬砖工却一直都在windows下部署应用,还未尝试过linux环境下部署应用。参考福禄网络研发团队的相关博客,学习一下如何将应用部署到linux系统。

.NET5都来了,你还不知道怎么部署到linux?最全部署方案,总有一款适合你 - 福禄网络研发团队 - 博客园 (cnblogs.com)

一、准备

云服务器:腾讯云(便宜)

操作系统:CentOS 8.2

SSH 客户端:PuTTY (免费且开源)

SFTP工具:WinSCP(免费且开源)

二、安装Sdk

打开PuTTy,登录云服务器,输入账户密码

54a8ca7230ec4f97f925eed5a542e092 - Linux上部署net6应用

在linux上先安装sdk

参考 在 CentOS 上安装 .NET - .NET | Microsoft Docs

指令:

sudo yum install -y dotnet-sdk-6.0

安装成功后,查看是否安装成功

dotnet --version

36f20ab64a5f84ef4d581c910b2097ce - Linux上部署net6应用

三、创建和发布Web应用

创建web应用:

dotnet new webapp -o test

输入cd test,进入应用目录,输入运行命令:dotnet run

fb17dabc894dce5fde1ab5e1b535ac7a - Linux上部署net6应用

运行成功,这个时候我们用外网ip访问时无法访问的

用WinScp打开目录/root/test/Properties,编辑launchSettings.json,将applicationUrl的localhost改为*

e5d7ddc3a79bbfe37f56796115dbc65d - Linux上部署net6应用

修改好后我们再用dotnet run 运行一次,用外网ip访问正常

4564ce90e57bfb1a939c96df6d66cd22 - Linux上部署net6应用

web程序没问题后,我们用命令发布

dotnet publish

四、安装和配置Supervisor

外网访问无问题以后,安装Supervisor。Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。

安装Supervisor:

yum install -y supervisor

安装成功后,分别执行以下命令

systemctl enable supervisord
systemctl start supervisord

查看状态

systemctl status supervisord

c0ce05744512b3171752292b2d1f7697 - Linux上部署net6应用

使用vi编辑/etc/conf.d,结果如下图(一定要一样

2ef4f2f50059d93c497f75b4813ec896 - Linux上部署net6应用

重新加载配置文件:

supervisorctl reload

打开IP:9001,输入用户密码:user/123

de5cf5c6b9ff513b8bab4873cdb760c6 - Linux上部署net6应用

supervisor安装配置完成后,开始配置一个ini文件:

[program:test] ;表示程序名称,用于在supervisor中显示,无特殊意义。
command=/bin/bash -c "dotnet test.dll --urls http://*:5001" ; 输入执行命令,这里表示执行的是dotnet test.dll
directory=/root/test/bin/Debug/net6.0/publish/ ; 应用程序根目录 
autostart=true ; 是否自动启动,当 supervisor 加载该配置文件的时候立即启动它 
autorestart=true ; 是否自动重启, 程序异常退出后自动重启
logfile_maxbytes=50MB ; 该配置文件输出单个日志文件的大小,默认50M
logfile_backups=10 ; 日志备份个数 
loglevel=info ; 记录日志级别 
stdout_logfile=/root/data/logs/test/test.out.log ; 指定标准输出日志文件 
environment=ASPNETCORE_ENVIRONMENT=Production ;环境变量。
user=root ;启动服务的用户  
redirect_stderr=true ;把 stderr 重定向到 stdout,默认 false

主要配置

command: 执行命令

directory:应用程序所在目录

stdout_logfile:日志文件所在路径,非常注意:请一定先要创建好路径,可用命令

mkdir -p /root/data/logs/test

上列ini可直接复制使用,但须注意:';'前一定一定要有个空格,否则会报错。(踩坑)

在本地配置好这个文件后,将其放到/etc/supervisord.d这个目录下

46e97de3fde3385943c428e3794ed780 - Linux上部署net6应用

重新加载:

supervisorctl reload

4870fc9860cf4227d81bed00aaa7ad23 - Linux上部署net6应用

这时可以看到配置的应用已经运行起来了

五、Nginx

安装Nginx

 yum install -y nginx

依次执行以下命令:

systemctl enable nginx
systemctl start nginx

浏览器访问ip:

1a85c87ab2237e1034223822a6124690 - Linux上部署net6应用

配置文件位置:/etc/nginx/nginx.conf,找到location节点,输入proxy_pass http://0.0.0.0:5001;

2438bde0a32a61d5138e491dbca6202f - Linux上部署net6应用

重新加载配置:

nginx -s reload

直接用ip访问成功,如果有绑定域名,也可直接用域名访问

至此,所有配置就都完成啦~~

转载请注明:xuhss » Linux上部署net6应用

喜欢 (0)

您必须 登录 才能发表评论!