Linux上部署net6应用
前言
.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应用的更多相关文章
- Linux上部署SVN
Linux上部署SVN author:headsen chen 2017-10-16 16:45:04 前提:通过yum来安装,必须是centos6.5的桌面版的.否则会出现某些的安装包不全而导致 ...
- 在Linux上部署Web项目
You believe it or not there is a feeling, lifetime all not lost to time. 在Linux上部署Web项目 这个是普通的web项目, ...
- Linux上部署多个tomcat端口设置
在Linux上部署多个tomcat主要是防止端口冲突的问题, tomcat服务器需配置三个端口才能启动,安装时默认启用了这三个端口,当要运行多个tomcat服务时需要修改这三个端口,不能相同.端口一: ...
- 在linux上部署tomcat服务
在linux上部署tomcat 1.安装JDK 2.下载tomcat http://tomcat.apache.org/download-70.cgi 3.上传到服务器,并解压 4.上传war包或者已 ...
- 一、netcore跨平台之 Linux上部署netcore和webapi
这几天闲着的时候在linux上部署了一下netcore webapi,下面就纪要一下这个过程. 中间遇到不少的坑,心里都是泪啊. 话不多说,开始干活. ------------------------ ...
- Dubbo入门到精通学习笔记(二):Dubbo管理控制台、使用Maven构建Dubbo的jar包、在Linux上部署Dubbo privider服务(shell脚本)、部署consumer服务
文章目录 Dubbo管理控制台 1.Dubbo管理控制台的主要作用: 2.管理控制台主要包含: 3.管理控制台版本: 安装 Dubbo 管理控制台 使用Maven构建Dubbo服务的可执行jar包 D ...
- Linux上部署web服务器并发布web项目-转
Linux上部署web服务器并发布web项目 近在学习如何在linux上搭建web服务器来发布web项目,由于本人是linux新手,所以中间入了不少坑,搞了好久才搞出点成果.以下是具体的详细步骤以 ...
- 在linux上部署自己开发的web项目
在linux上部署自己开发的web项目 前言:相信有很多做开发的小伙伴和我之前一样,只会在windows环境下,利用开发工具开发运行web项目,但是却不知道怎么把开发好的项目部署到linux服务器上去 ...
- linux 上部署 YApi 可视化接口管理平台
linux 上部署 YApi 可视化接口管理平台: YApi 是一个高效.易用.功能强大的可视化接口管理平台,官方地址 : http://yapi.demo.qunar.com/ 环境要求 nodej ...
随机推荐
- 2022年官网下安装RabbitMQ最全版与官网查阅方法
目录 一.Erlang环境部署 1.百度搜索"Erlang",或者访问网址:https://www.erlang.org/,找到DOWNLOAD双击进入. 2.找到支持的windo ...
- 分布式 PostgreSQL 集群(Citus)官方教程 - 迁移现有应用程序
将现有应用程序迁移到 Citus 有时需要调整 schema 和查询以获得最佳性能. Citus 扩展了 PostgreSQL 的分布式功能,但它不是扩展所有工作负载的直接替代品.高性能 Citus ...
- 大作业:开发一个精美的 Web 网站
大作业:开发一个精美的 Web 网站 实验目的: 掌握一个完整精美网页开发的基本方法 实验要求: 1.开发一个 Web 站点,至少有 3 个以上的页面: 2.采用 CSS 和 HTML 文件分开方法: ...
- 《shader入门精要》13.2再谈运动模糊中片元着色器的世界坐标的计算
具体在书p275页 这里为啥需要除D.w呢. 首先我们得到的NDC的坐标是已经归一化的,但是CurrenViewProjectionMatrix的作用,是把世界空间转化为尚未归一化的裁剪空间. 这里看 ...
- [SWPU2019] NETWORK
[SWPU2019]Network(TTL隐写) 1.题目概述 2.解题过程 文档中的数字代表什么呢?会不会是RGB? 看了一下以前做过的题目,好像并不是 那是什么呢?百度告诉我这是TTL隐写,哇,长 ...
- Java——spring中session的获取
获得session public static HttpServletRequest getSession(){ return ((ServletRequestAttributes) RequestC ...
- Parrot Linux安装教程
镜像下载.域名解析.时间同步请点击 阿里云开源镜像站 一.Parrot Linux介绍 Parrot 是一个由开发人员和安全专家组成的全球社区,他们共同构建一个共享的工具框架,使他们的工作更轻松.标准 ...
- 记录VMware安装VMware Tools过程及遇到的一些问题
镜像下载.域名解析.时间同步请点击 阿里云开源镜像站 本文以CentOS安装为例 为什么要安装VMware Tools ? 便于在Windows 下更好管理虚拟机 便于设置Windows和CentOS ...
- 12.8 typora快捷键
Markdown学习 标题: n个#号 字体 粗体:要加粗的字两边加两个** 如 ** 粗体** 斜体:两边一个*号 斜体加粗: 两边三个*号 删除线:两边两个波浪号 引用 github 左边一个大于 ...
- javascript的比较运算符
JavaScript一共提供了8个比较运算符: > 大于运算符 < 小于运算符 <= 小于等于运算符 >= 大于等于运算符 == 相等运算符 === 严格相等运算符 != 不相 ...