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.-preview2-

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

2.安装及配置Nginx

sudo apt-get install nginx

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

server {
listen ;
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

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

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部署到Linux生产环境

    研究.NET Core已经一段时间了,一直都是在Windows上开发,这2天尝试着将公司一个很简单的内部Web项目改造成了ASP.NET Core,并且部署到Linux上.生产环境如下: Linux ...

  3. CentOs7 +Jexus 5.8.2部署Asp.Net Core WebApi 1.0生产环境

    Jexus 是一款运行于 Linux 平台,以支持  ASP.NET.PHP 为特色的集高安全性和高性能为一体的 WEB 服务器和反向代理服务器.最新版 5.8.2 已经发布,有如下更新: 1,现在大 ...

  4. asp.net core 发布到linux下Docker

    1.linux Docker 安装 内核升级:https://www.cnblogs.com/zksfyz/p/7919425.html 安装:   https://www.runoob.com/do ...

  5. asp.net core发布到linux

    在发布到linux的过程中出现两个问题现在总结一下: 我的虚拟机是安装到本机上面的,所以,应该在虚拟机的设置里面设置端口映射.具体设置如下: 选择vm上方的编辑 在弹出的框中选择VMnet8,点击下方 ...

  6. ASP.NET Core 发布到Linux需要注意的地方

    此文持续更新. 读取本地目录的问题, 在windows下,一般会用“\”,但在Linux中用的是“/” 待续..

  7. Core 发布至Linux

    ASP.NET Core 发布至Linux生产环境 Ubuntu 系统 ASP.NET Core 发布至Linux生产环境 Ubuntu 系统,之前跟大家讲解了 dotnet publish 发布,而 ...

  8. ASP.NET Core MVC 在linux上的创建及发布

    前言 ASP.NET core转眼都发布半月多了,社区最近也是非常活跃,虽然最近从事python工作,但也一直对.NET念念不忘,看过了园区大神们搭建的Asp.net core项目之后,自己也是跃跃欲 ...

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

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

随机推荐

  1. Angular实现递归指令 - Tree View

    在层次数据结构展示中,树是一种极其常见的展现方式.比如系统中目录结构.企业组织结构.电子商务产品分类都是常见的树形结构数据. 这里我们采用Angular的方式来实现这类常见的tree view结构. ...

  2. 防止开发人员获取到敏感数据(SQL Server的数据加密简介)

    背景 有时候,我们还真的会碰到这样的需求:防止开发人员获取到敏感数据.也许你觉得很简单,把开发和运营分开不就可以了吗?是的,如果公司有专门的运营团队的话,但对于很多小公司来说,几个人的开发团队就兼顾了 ...

  3. svn 忽略文件不管用

    svn 不能对已添加过版本控制的文件进行忽略.于是乎,你会发先,你怎么忽略都不起作用.于是乎,该怎么办? svn忽略已添加到版本库文件或文件夹步骤: 将要忽略的文件或文件夹剪切到非工作拷贝目录. 在父 ...

  4. 自制C#版3DS文件的解析器并用SharpGL显示3DS模型

    自制C#版3DS文件的解析器并用SharpGL显示3DS模型 我已经重写了3ds解析器,详情在此(http://www.cnblogs.com/bitzhuwei/p/CSharpGL-2-parse ...

  5. Lucene系列-搜索

    Lucene搜索的时候就要构造查询语句,本篇就介绍下各种Query.IndexSearcher是搜索主类,提供的常用查询接口有: TopDocs search(Query query, int n); ...

  6. lua如何构造类

    function class(super, autoConstructSuper) local classType = {}; classType.autoConstructSuper = autoC ...

  7. Atitit  代理与分销系统(1)  子代理 充值总额功能设计概览 sum() groubpy subagt

    Atitit  代理与分销系统(1)  子代理 充值总额功能设计概览 sum() groubpy subagt Keyword 分组与聚合操作. 一个for做分组...里面的做聚合... 数据g操作查 ...

  8. Android 神兵利器—— Git 常用命令

    总结的Android 工具类文章: Android 神兵利器-- Adb 常用命令 Android 神兵利器-- Git 常用命令 在项目研发时,经常使用Git,基本的命令有六个,通过下面的图片我们可 ...

  9. angularjs定义全局变量

    angularjs定义全局变量 三种方法 直接外层定义全局变量 利用ng的value定义全局变量 利用ng的constant定义全局变量 Takl is cheap, Show me the code ...

  10. OpenCascade Modeling Algorithms Boolean Operations

    Modeling Algorithms Boolean Operations of Opencascade eryar@163.com 布尔操作(Boolean Operations)是通过两个形状( ...