前言

本文介绍如何在 Ubuntu 16.04 服务器上安装 .NET Core 2.0 SDK、创建项目与发布,并使用 Nginx 部署 .NET Core 2.0 Web 项目。

安装 .NET Core

注册 Microsoft 签名密钥:

curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg

注册软件源

sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-xenial-prod xenial main" > /etc/apt/sources.list.d/dotnetdev.list'

安装 .NET SDK

在终端管理器下,运行以下命令:

sudo apt-get update
sudo apt-get install dotnet-sdk-2.0.2

注:最新 2.0.3 版本已经是发布,可以使用 sudo apt-get install dotnet-sdk-2.0.3 安装。

Nginx 的安装与启动

安装 Nginx

sudo apt-get update
sudo apt-get install nginx

启动 Nginx

通过运行以下命令显式启动:

sudo service nginx start

配置 Nginx

server {
listen 80;
location / {
proxy_pass http://localhost:5000; # 监听 5000 端口,因为 DotNet 默认端口是 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;
}
}

保存成功后需要重新加载配置文件:

sudo nginx -s reload

.NET Core 2.0 运行与发布

创建 .NET Core 2.0 Web 项目

通过 dotnet new --help 命令可以知道 .Net Core 2.0 目前支持的项目模板,在创建项目的时候使用对应模板的 Short Name 即可。

在终端输入以下命令创建一个 MVC 项目:

dotnet new mvc -o mvcapp

运行 .NET Core 2.0 Web 项目

进入该项目目录:

cd mvcapp

在终端输入以下命令运行项目:

dotnet run

控制台出现以上提示后表示运行成功。

发布项目

在该项目的根目录下运行如下命令可以发布项目

dotnet publish



发布成功后,文件会保存到项目目录下的 /bin/Debug/netcoreapp2.0/publish

如果想让程序运行在后台进程中,可以使用下面的命令:

nohup dotnet mvcapp.dll &

文章到这里就结束了,如果有什么不对的地方欢迎大家指正,下一篇文章我将讲一讲如何使用 Jexus 部署 .NET Core 2.0 项目 。

参考文章

1.使用 Nginx 在 Linux 上为 ASP.NET Core 设置托管环境,并对其进行部署

2.Get started with .NET in 10 minutes

Ubuntu 下使用 Nginx 部署 .NET Core 2.0 网站的更多相关文章

  1. ubuntu下使用nginx部署Laravel

    问题描述 Laravel是PHP下当今最受欢迎的web应用开发框架,github上start数远超第二名Symfony,以前我用这个框架做项目的时候通常就是扔到apache里面,然后配置.htacce ...

  2. Ubuntu 18.04 安装部署Net Core、Nginx全过程

    Ubuntu 18.04 安装部署Net Core.Nginx全过程 环境配置 Ubuntu 18.04 ,Nginx,.Net Core 2.1, Let's Encrypt 更新系统 sudo a ...

  3. Ubuntu上通过nginx部署Django笔记

    Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式.今天在Ubuntu上使用Nginx部署Django服务,虽然不是第一次搞这个了,但是发现还是跳进了好多坑,g ...

  4. NodeJS项目迁移兼Ubuntu下NodeJS环境部署

    前言 之前做的几个项目都托管在阿里云服务器,但是最近要到期了.想着到底要不要续期,毕竟100/月.后面看着阿里云有个活动,800/三年.果断买下.环境部署折腾了一天,其中也遇到几个坑. 目录 一.安装 ...

  5. Ubuntu & GitLab CI & Docker & ASP.NET Core 2.0 自动化发布和部署(2)

    上一篇:Ubuntu & GitLab CI & Docker & ASP.NET Core 2.0 自动化发布和部署(1) 服务器版本 Ubuntu 16.04 LTS. 本 ...

  6. 在Centos7下安装与部署.net core

    在Centos7下安装与部署.net core 2018年02月28日 19:36:16 阅读数:388 个人安装流程,参照文档 https://www.cnblogs.com/Burt/p/6566 ...

  7. ubuntu下在apache部署python站点

    ubuntu下在apache部署python站点 我的是ubuntu14 32为的虚拟机,默认安装的python为3.4 环境:apache + mysql + django + python3 软件 ...

  8. Ubuntu下安装Nginx,PHP5(及PHP-FPM),MySQL

    .简介: Tomcat在高并发环境下处理动态请求时性能很低,而在处理静态页面更加脆弱.虽然Tomcat的最新版本支持epoll,但是通过Nginx来处理静态页面要比通过Tomcat处理在性能方面好很多 ...

  9. Ubuntu | Flask + Gunicorn + Nginx 部署服务器环境

    现在我们手里有一个准备发布的项目,那么如何将他上传到你的服务器,并让外网访问呢? 前提: 1. 安装了Python环境 apt-get install python-dev 2. 安装Flask pi ...

随机推荐

  1. [CTSC2017]网络

    [CTSC2017]网络 连一条长度为len的边,使得基环树的直径最小 结论:一定连在某条直径两个点上(否则更靠近不劣) 然后二分答案判定. dp[i]:链上一个点往下延伸的最大深度 考虑对于任意两个 ...

  2. setTimeout与setInterval

    setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式. 语法:setTimeout(code/function, milliseconds, param1, param2, ...) ...

  3. QTcpSever和QTcpSocket实现多线程客户端和服务端;

    QTcpServer提供了newConnection信号, 可以通过connect实现连接槽函数,利用nextPendingConnection 函数获取连接的QTcpSocket * :也可以继承Q ...

  4. windows一键部署java项目

    windows一键部署java项目 因为公司需求,要在windows的环境上做一键部署启动java项目,同时还要支持从安装界面动态修改配置文件的IP地址.就像安装软件一样将jdk,tomcat,mys ...

  5. requests 获取token

    # encoding:utf-8 import reimport jsonimport randomfrom requests.sessions import Session class Regist ...

  6. Python的安装及小程序练习

    Python 1.Python的安装教程 (1)进入Python官网 (2)双击Python-3.6.4.exe安装程序,勾选Add Python 3.6 to PATH (3)选择自定义安装. (4 ...

  7. thinkphp在iis上不是出现500错误

    按照官方文档,部署好iis下面URL重定向文件后,出现500错误,不停地百度,不停地修改web.config文件,终也不成. 在虚拟空间调整了php版本,一下子就好了.原来的版本为5.4,调整为5.6 ...

  8. Linux基础系统优化及常用命令

    # Linux基础系统优化及常用命令 [TOC] ## Linux基础系统优化 Linux的网络功能相当强悍,一时之间我们无法了解所有的网络命令,在配置服务器基础环境时,先了解下网络参数设定命令. - ...

  9. 彻底解决MacOS上应用程序快捷键冲突的问题,自定义快捷键设置

    1看图操作 上面选择好你要修改的应用程序的快捷键 ,我以Chrome为例子 最后点击下ADD 然后回到Chrome的菜单,发现刷新页的快捷键变成了F5 注意,快捷键的名字要和你Chrome菜单上的名字 ...

  10. springMVC2

    一.视图解析流程 springMVC中视图解析器 1.视图最终的页面渲染.view视图来做,render 2.跳转到目标视图,请求转发. 3.遍历视图解析器,逻辑视图转换为物理视图. 1)视图 视图的 ...