ASP.NET Core 发布至Linux生产环境 Ubuntu 系统,之前跟大家讲解了 dotnet publish 发布,而没有将整个系统串起来。

今天就跟大家综合的讲一下ASP.NET Core发布至Linux生产环境。

开发及发布环境:WIN10 x64 

生产Linux环境:Ubuntu 14.04

发布的示例代码: https://github.com/linezero/NETCoreBBS

代码下载下来,首先请注释 Program.cs 中 .UseUrls("http://*:80")

本篇将以发布dotnet publish两种方式做介绍。

默认发布

下载示例代码,定位到 src\NetCoreBBS 文件夹。

首先dotnet restore, 然后输入dotnet publish命令既可。

自带运行时发布

定位到 src\NetCoreBBS 文件夹,打开 project.json 文件。

注释掉 "type": "platform"

首先同样 dotnet restore, 然后输入dotnet publish -r ubuntu.14.04-x64

Ubuntu 配置

将刚才发布的文件夹分别上传至ubuntu系统,这里给大家推荐一个工具 WinSCP。

对于默认发布,则使用, dotnet NetCoreBBS.dll 这里需要安装.NET Core SDK。

对于自带运行时,设置权限,及安装对应依赖,无需安装SDK,直接使用 ./NetCoreBBS 运行。

设置权限: chmod -R 755 NetCoreBBS

1.安装.NET Core SDK

https://www.microsoft.com/net/core#ubuntu

Ubuntu 14.04

sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet/ trusty main" > /etc/apt/sources.list.d/dotnetdev.list'
sudo apt-key adv --keyserver apt-mo.trafficmanager.net --recv-keys 417A0893
sudo apt-get update

sudo apt-get install dotnet-dev-1.0.0-preview2-003121

安装好以后,就可以使用 dotnet 命令。

2.安装及配置Nginx

sudo apt-get install nginx

安装好以后,定位到 /etc/nginx/sites-available/default 文件。更改server 节点如下。

server {listen 80;location / {proxy_pass http://localhost:5000;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection keep-alive;proxy_set_header Host $host;proxy_cache_bypass $http_upgrade;}
}

然后重新启动 Nginx

sudo service nginx restart

3.安装及配置supervisor

sudo apt-get install supervisor

安装好 supervisor 以后,下面就来配置。

定位到 /etc/supervisor/conf.d/ 文件夹,添加一个NetCoreBBS.conf 文件。

下面是dotnet NetCoreBBS.dll 命令方式。经过多次的坑,终于得到最终配置文件。这里因为用到Sqlite 数据库,需要指定目录。

[program:NetCoreBBS]
command=/usr/bin/dotnet /root/publish/NetCoreBBS.dll
directory=/root/publish
autostart=true
autorestart=true
stderr_logfile=/var/log/NetCoreBBS.err.log
stdout_logfile=/var/log/NetCoreBBS.out.log
environment=ASPNETCORE__ENVIRONMENT=Production
user=root
stopsignal=INT

重启 supervisor,这里由于我放置在root 文件夹,所以需要root 用户,大家也可以放置在其他文件夹。

sudo service supervisor restart

下面是自带运行时方式,自带运行时可以省略掉第一步,无需安装SDK 安装几个依赖就行。可以参考之前文章:http://www.cnblogs.com/linezero/p/5475246.html

[program:NetCoreBBS]
command=/root/publishself/NetCoreBBS
directory=/root/publishself
autostart=true
autorestart=true
stderr_logfile=/var/log/NetCoreBBS.err.log
stdout_logfile=/var/log/NetCoreBBS.out.log
environment=ASPNETCORE__ENVIRONMENT=Production
user=root
stopsignal=INT

然后我们访问设置的ip 或者域名就能访问ASP.NET Core 站点了。

大家如果要配置多个站点,可以在Nginx 里进行配置。

参考文档:https://docs.asp.net/en/latest/publishing/linuxproduction.html

如果你觉得本文对你有帮助,请点击“推荐”,谢谢。

转载于:https://www.cnblogs.com/linezero/p/aspnetcoreubuntu.html

ASP.NET Core 发布至Linux生产环境 Ubuntu 系统相关推荐

  1. 发布ASP.NET Core程序到Linux生产环境

    原文翻译:Publish to a Linux Production Environment 作者:Sourabh Shirhatti 在这篇文章里我们将介绍如何在 Ubuntu 14.04 Serv ...

  2. asp.net core 发布到 docker 容器时文件体积过大及服务端口的配置疑问

    在 asp.net core 发布时,本人先后产生了3个疑问. 1.发布的程序为什么不能在docker容器中运行 当时在window开发环境中发布后,dotnet xxx.dll可以正常运行:但放入d ...

  3. ASP.NET Core 实战:Linux 小白的 .NET Core 部署之路

    一.前言  最近一段时间自己主要的学习计划还是按照毕业后设定的计划,自己一步步的搭建一个前后端分离的 ASP.NET Core 项目,目前也还在继续学习 Vue 中,虽然中间断了很长时间,好歹还是坚持 ...

  4. Asp.Net Core 发布到IIS

    一.Asp.Net Core 发布到IIS 1.许多时候在WindowsServer服务器上已经安装了IIS,监听80端口,那么Asp.Net Core应用的自宿主就没法监听80端口 2.也就是在Wi ...

  5. ASP.NET Core 2.0 MVC 发布部署--------- ASP.NET Core 发布的具体操作

    ASP.NET Core 发布的具体操作 下面使用C# 编写的ASP.NET Core Web项目示例说明发布的全过程. 1.创建项目 选择"文件" > "新建&q ...

  6. 【ketlle】本地开发kitlle job提交至linux生产环境上执行流程

    [ketlle]本地开发kitlle job提交至linux生产环境上执行 前言 操作步骤 后记 前言 因为kettle提供可视化界面,所以我们在本地开发的时候拖拽开发十分便捷,开发完成后,我们需要丢 ...

  7. 【原生态跨平台:ASP.NET Core 1.0(非Mono)在 Ubuntu 14.04 服务器上一对一的配置实现-篇幅2】...

    在 [原生态跨平台:ASP.NET Core 1.0(非Mono)在 Ubuntu 14.04 服务器上一对一的配置实现-篇幅1] 环境:Ubuntu 14.04 服务器版 虚拟机:Vmware 10 ...

  8. .NET Conf 2020 - 基于ASP.NET Core构建可热插拔的插件化系统

    文章标题:.NET Conf 2020 - 基于ASP.NET Core构建可热插拔的插件化系统 作者:Lamond Lu 项目地址:https://github.com/lamondlu/CoolC ...

  9. 打造前端 Deepin Linux 工作环境——安装系统

    打造前端 Deepin Linux 工作环境--安装系统 为什么选择 Deepin Linux 系统 在 linux 操作系统的选择上,我个人不喜欢太花里胡哨的东西.曾经一度认为 linux 系统只应 ...

最新文章

  1. 特征选择的通俗讲解!
  2. 编程题:两个数比较大小,之后用变量t互换。
  3. python在财务领域的应用-浅谈财务智能化在实际工作中的运用
  4. Linux 搜索指令
  5. 2017年10月05日普及组 负进制
  6. vue与node和npm关系
  7. 从头学习linux C 冒泡法排序
  8. python中使用什么来实现异常捕捉_Python异常原理及异常捕捉实现过程解析
  9. 视觉控每天盯着桌面,少不了桌面手机壁纸图片,请收好
  10. SAP ERP与国内ERP系统的对比,为什么建议选SAP
  11. 用lnmp.org中的lnmp下安装ftp(pureftp)
  12. Spring中的AOP(8)
  13. Protus 8.6 及以上如何找到library文件夹
  14. 三极管基极限流电阻计算
  15. 多多客id是什么意思_【拼多多】关于多多客比价行为规范解释说明
  16. 安装 centos8 设置基础软件仓库时出错
  17. html5 旋转木马相册,HTML5 CSS3 专题 :诱人的实例 3D旋转木马效果相册
  18. mysql求分位数_给Mysql加自定义函数计算百分位数(percentile)。
  19. Mac网络热点的配置Charles移动端抓包实战
  20. 题目 给定一个字符串所表示的括号序列,包含以下字符: '(', ')', '{', '}', '[' and ']', 判定是否是有效的括号序列。 样例 括号必须依照 ()顺序表示, ()[]

热门文章

  1. 新手python爬虫代码_新手小白必看 Python爬虫学习路线全面指导
  2. linux系统外接硬盘_linux通过fstab自动挂载外接磁盘
  3. 2d游戏引擎_游戏60秒:RTS游戏从2D到3D的蜕变
  4. 限定概率抽奖_圣诞节LOL紫色宝箱30连抽,限定全是冰雪,节日气氛很浓
  5. easyui 动态设置单元格控件_比Excel还简单,实现动态报表原来只需要十分钟!
  6. box怎么用 latency_换轴记给铝厂 F96 牛油果,换一套 Box 重力蓝
  7. python多个strip_python 格式化多个Python3中strip()、lstrip()、rstrip()用法详解
  8. 提交自己开发的MR作业到YARN上运行的步骤
  9. 20个Pandas数据实战案例,干货多多
  10. 7000字 23张图,Pandas一键生成炫酷的动态交互式图表