前言

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

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

一、准备

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

操作系统:CentOS 8.2

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

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

二、安装Sdk

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

在linux上先安装sdk

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

指令:

sudo yum install -y dotnet-sdk-6.0

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

dotnet --version

三、创建和发布Web应用

创建web应用:

dotnet new webapp -o test

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

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

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

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

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

dotnet publish

四、安装和配置Supervisor

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

安装Supervisor:

yum install -y supervisor

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

systemctl enable supervisord
systemctl start supervisord

查看状态

systemctl status supervisord

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

重新加载配置文件:

supervisorctl reload

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

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这个目录下

重新加载:

supervisorctl reload

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

五、Nginx

安装Nginx

 yum install -y nginx

依次执行以下命令:

systemctl enable nginx
systemctl start nginx

浏览器访问ip:

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

重新加载配置:

nginx -s reload

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

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

Linux上部署net6应用的更多相关文章

  1. Linux上部署SVN

    Linux上部署SVN author:headsen chen  2017-10-16  16:45:04 前提:通过yum来安装,必须是centos6.5的桌面版的.否则会出现某些的安装包不全而导致 ...

  2. 在Linux上部署Web项目

    You believe it or not there is a feeling, lifetime all not lost to time. 在Linux上部署Web项目 这个是普通的web项目, ...

  3. Linux上部署多个tomcat端口设置

    在Linux上部署多个tomcat主要是防止端口冲突的问题, tomcat服务器需配置三个端口才能启动,安装时默认启用了这三个端口,当要运行多个tomcat服务时需要修改这三个端口,不能相同.端口一: ...

  4. 在linux上部署tomcat服务

    在linux上部署tomcat 1.安装JDK 2.下载tomcat http://tomcat.apache.org/download-70.cgi 3.上传到服务器,并解压 4.上传war包或者已 ...

  5. 一、netcore跨平台之 Linux上部署netcore和webapi

    这几天闲着的时候在linux上部署了一下netcore webapi,下面就纪要一下这个过程. 中间遇到不少的坑,心里都是泪啊. 话不多说,开始干活. ------------------------ ...

  6. Dubbo入门到精通学习笔记(二):Dubbo管理控制台、使用Maven构建Dubbo的jar包、在Linux上部署Dubbo privider服务(shell脚本)、部署consumer服务

    文章目录 Dubbo管理控制台 1.Dubbo管理控制台的主要作用: 2.管理控制台主要包含: 3.管理控制台版本: 安装 Dubbo 管理控制台 使用Maven构建Dubbo服务的可执行jar包 D ...

  7. Linux上部署web服务器并发布web项目-转

    Linux上部署web服务器并发布web项目   近在学习如何在linux上搭建web服务器来发布web项目,由于本人是linux新手,所以中间入了不少坑,搞了好久才搞出点成果.以下是具体的详细步骤以 ...

  8. 在linux上部署自己开发的web项目

    在linux上部署自己开发的web项目 前言:相信有很多做开发的小伙伴和我之前一样,只会在windows环境下,利用开发工具开发运行web项目,但是却不知道怎么把开发好的项目部署到linux服务器上去 ...

  9. linux 上部署 YApi 可视化接口管理平台

    linux 上部署 YApi 可视化接口管理平台: YApi 是一个高效.易用.功能强大的可视化接口管理平台,官方地址 : http://yapi.demo.qunar.com/ 环境要求 nodej ...

随机推荐

  1. Caffe2源码解析

    写在前面 上一篇文章对Caffe2中的core模块进行了简单拆解Caffe2源码解析之core,本篇给出其它模块的拆解,目的是大致了解每个模块的内容和目标,进一步理解Caffe2的整体框架.内容不多, ...

  2. 输入URL到页面加载过程

    URL(uniform resource location) : 统一资源定位符,用来作为互联网上各种资源的标识符,可理解为身份证号 . 注意点:浏览器为了保证安全性,设定了跨域保护策略, 即窗口之间 ...

  3. C#处理医学影像(三):基于漫水边界自动选取病灶范围的实现思路

    开发背景: 医生在实际使用PACS软件观察病灶时,经常会测量不规则病灶的周长和面积,使用画笔工具勾勒比较耗时且准度欠佳, 或者在标记人工智能训练样本时少则几百张,多则几千张,为极大减少耗时和极大提高工 ...

  4. ArcGIS进行视域分析及地形图制作

     问题说明 开发商要在本区域建造观景亭,希望在观景亭上能看到优美的景色.根据提供的数据,完成以下要求. 一. 数据说明(见"题目3"文件夹) 1. DEM.tif:研究区域的数据高 ...

  5. Js 调用 webservice

    <html> <head> <title>通过ajax调用WebServive服务</title> </head> <script t ...

  6. 通过blacklist来禁用驱动

    blacklist黑名单 我们在linux中安装驱动,有时会遇到受限或冲突,通常解决方式都是要修改blacklist.conf.对内核模块来说,黑名单是指禁止某个模块装入的机制 在 /etc/modp ...

  7. vue2.x版本中computed和watch的使用入门详解-关联和区别

    前面两篇介绍了computed和watch的基本使用 watch篇 computed篇 两者的区别,继续通过代码实现的方式具体去了解 html <li>最开始的value值:{{ name ...

  8. async-validator 源码学习笔记(五):Schema

    系列文章: 1.async-validator 源码学习(一):文档翻译 2.async-validator 源码学习笔记(二):目录结构 3.async-validator 源码学习笔记(三):ru ...

  9. 为什么不建议使用统配符初始化 css 样式

    为什么不建议使用统配符初始化 css 样式 * { padding:0; margin:0; } 采用这样的写法好处是写起来很简单,但是通配符,需要把所有的标签都遍历一遍,当网站较大时,样式比较多,这 ...

  10. Mac安装和配置Maven 及其第二次启动报错问题解决

      1.下载安装 下载地址: https://maven.apache.org/download.cgi 下载后解压下来重名名为ApacheMaven,并放入到/usr/local/下 2.配置环境变 ...