Ubuntu 下使用 Nginx 部署 .NET Core 2.0 网站
前言
本文介绍如何在 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 网站的更多相关文章
- ubuntu下使用nginx部署Laravel
问题描述 Laravel是PHP下当今最受欢迎的web应用开发框架,github上start数远超第二名Symfony,以前我用这个框架做项目的时候通常就是扔到apache里面,然后配置.htacce ...
- 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 ...
- Ubuntu上通过nginx部署Django笔记
Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式.今天在Ubuntu上使用Nginx部署Django服务,虽然不是第一次搞这个了,但是发现还是跳进了好多坑,g ...
- NodeJS项目迁移兼Ubuntu下NodeJS环境部署
前言 之前做的几个项目都托管在阿里云服务器,但是最近要到期了.想着到底要不要续期,毕竟100/月.后面看着阿里云有个活动,800/三年.果断买下.环境部署折腾了一天,其中也遇到几个坑. 目录 一.安装 ...
- Ubuntu & GitLab CI & Docker & ASP.NET Core 2.0 自动化发布和部署(2)
上一篇:Ubuntu & GitLab CI & Docker & ASP.NET Core 2.0 自动化发布和部署(1) 服务器版本 Ubuntu 16.04 LTS. 本 ...
- 在Centos7下安装与部署.net core
在Centos7下安装与部署.net core 2018年02月28日 19:36:16 阅读数:388 个人安装流程,参照文档 https://www.cnblogs.com/Burt/p/6566 ...
- ubuntu下在apache部署python站点
ubuntu下在apache部署python站点 我的是ubuntu14 32为的虚拟机,默认安装的python为3.4 环境:apache + mysql + django + python3 软件 ...
- Ubuntu下安装Nginx,PHP5(及PHP-FPM),MySQL
.简介: Tomcat在高并发环境下处理动态请求时性能很低,而在处理静态页面更加脆弱.虽然Tomcat的最新版本支持epoll,但是通过Nginx来处理静态页面要比通过Tomcat处理在性能方面好很多 ...
- Ubuntu | Flask + Gunicorn + Nginx 部署服务器环境
现在我们手里有一个准备发布的项目,那么如何将他上传到你的服务器,并让外网访问呢? 前提: 1. 安装了Python环境 apt-get install python-dev 2. 安装Flask pi ...
随机推荐
- (十四)QFile操作,QByteArray,文件流操作,QTextStream,QDataStream,QFileInfo, QIODevice
QFile f 1.readall #include "widget.h" #include "ui_widget.h" #include <QFileD ...
- Linux核心命令使用方法
一.Linux命令行常用快捷键 ctrl + c cancel 取消当前的操作 ctrl + l (小写字母L) clear(命令)清空当前屏幕 ctrl + d 退出当前用户 ctrl + r 查找 ...
- cucumber学习笔记
来源于cucumber官网 学习完了之后全部整理一遍
- java动态代理源码解析
众所周知,java动态代理同反射原理一直是许多框架的底层实现,之前一直没有时间来分析动态代理的底层源码,现结合源码分析一下动态代理的底层实现 类和接口 java动态代理的主要类和接口有:java.la ...
- 对filter的初步认识
Filter 技术是servlet 2.3 新增加的功能.servlet2.3是sun公司 于2000年10月发布的,它的开发者包括许多个人和公司团体,充分体现了sun公司所倡导的代码开放性原则.在 ...
- C语言博客05--指针
C语言博客05--指针 1.本章学习总结 1.1 思维导图 1.2 本章学习体会及代码量学习体会 1.2.1 学习体会 在本周的学习过程中,我们学习了指针的用法.说实话,指针的用法有点绕,之前一直没搞 ...
- (七) UVC框架分析
title: UVC框架分析 date: 2019/4/23 19:50:00 toc: true --- UVC框架分析 源码的位置在drivers\media\video\uvc,查看下Makef ...
- [Reinforcement Learning] 马尔可夫决策过程
在介绍马尔可夫决策过程之前,我们先介绍下情节性任务和连续性任务以及马尔可夫性. 情节性任务 vs. 连续任务 情节性任务(Episodic Tasks),所有的任务可以被可以分解成一系列情节,可以看作 ...
- redis---------AOF文件异常导致的redis无法载入
AOF损坏时的对策1.若在写AOF文件时Server崩溃则可能导致AOF文件损坏而不能被Redis载入.可通过如下步骤修复: 创建一个AOF文件的备份: cp appendonly.aof appen ...
- 10、jstl标签库
一.JSTL是SUN公司制定的一个JSP标签库,由apache jakarta组织负责维护的开源项目,目的是用标签代替java代码片段.JSTL 1.0 由四个定制标记库(core.format.xm ...