ASP.NET Core 发布至Linux生产环境 Ubuntu 系统
来源:互联网 发布:原宿风书包淘宝 编辑:程序博客网 时间:2024/06/05 14:15
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 417A0893sudo 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.dlldirectory=/root/publishautostart=trueautorestart=truestderr_logfile=/var/log/NetCoreBBS.err.logstdout_logfile=/var/log/NetCoreBBS.out.logenvironment=ASPNETCORE__ENVIRONMENT=Productionuser=rootstopsignal=INT
重启 supervisor,这里由于我放置在root 文件夹,所以需要root 用户,大家也可以放置在其他文件夹。
sudo service supervisor restart
下面是自带运行时方式,自带运行时可以省略掉第一步,无需安装SDK 安装几个依赖就行。可以参考之前文章:http://www.cnblogs.com/linezero/p/5475246.html
[program:NetCoreBBS]command=/root/publishself/NetCoreBBSdirectory=/root/publishselfautostart=trueautorestart=truestderr_logfile=/var/log/NetCoreBBS.err.logstdout_logfile=/var/log/NetCoreBBS.out.logenvironment=ASPNETCORE__ENVIRONMENT=Productionuser=rootstopsignal=INT
然后我们访问设置的ip 或者域名就能访问ASP.NET Core 站点了。
大家如果要配置多个站点,可以在Nginx 里进行配置。
参考文档:https://docs.asp.net/en/latest/publishing/linuxproduction.html
相关文章:
ASP.NET Core 1.0 入门——了解一个空项目
ASP.NET Core 1.0 部署 HTTPS (.NET Framework 4.5.1)
.NET Core 1.0、ASP.NET Core 1.0和EF Core 1.0简介
云服务器下ASP.NET Core 1.0环境搭建(包含mono与coreclr)
使用VS Code开发ASP.NET Core 应用程序
dotnet run是如何启动asp.net core站点的
ASP.NET Core提供模块化Middleware组件
“dotnet restore"和"dotnet run"都做了些什么?
探秘 dotnet run 如何运行 .NET Core 应用程序
.NET Portability Analyzer 已开源
ASP.NET Core的配置(1):读取配置信息
ASP.NET Core的配置(2):配置模型详解
.NET Core 1.0 RC2 历险之旅
使用VS Code开发 调试.NET Core 应用程序
让我们Core在一起:ASP.NET Core & .NET Core
.NET Core VS Code 环境配置
官方博客明确了 .NET Core RC2/RTM 时间表
.NET Core全新的配置管理[共9篇]
利用记事本创建一个ASP.NET Core RC2 MVC应用
微软.NET 正式劈腿成功,横跨所有平台
.NET Core 1.0 CentOS7 尝试
解读发布:.NET Core RC2 and .NET Core SDK Preview 1
[.NET Core].NET Core R2安装及示例教程
ASP.NET Core 开发-中间件(Middleware)
结合Jexus + Kestrel 部署 asp.net core 生产环境
通过Jexus 部署 dotnetcore版本MusicStore 示例程序
ASP.NET Core 中文文档 第一章 入门
用 Visual Studio Code 在 macOS 上创建首个 ASP.NET Core 应用程序
用 Visual Studio 和 ASP.NET Core MVC 创建首个 Web API
用 Visual Studio 发布一个 Azure 云 Web 应用程序
ASP.NET Core MVC 与 Visual Studio 入门
第二章指南(4.2)添加 Controller
DotNet Core 介绍
asp.net core 中间件详解及项目实战
教你实践ASP.NET Core Authorization(免看文档教程)
asp.net core 使用 Redis 和 Protobuf 进行 Session 缓存
asp.net core 中间件详解及项目实战
第二章 指南(4.3)添加 View
dotnet core开发体验之开始MVC
dotnet core 开发体验之Routing
聊聊ASP.NET Core默认提供的这个跨平台的服务器——KestrelServer
简析.NET Core 以及与 .NET Framework的关系
.NET Core 使用Dapper 操作MySQL
使用 CommandLineApplication 类创建专业的控制台程序
简析 .NET Core 构成体系
.NET Core也可以使用MongoDB了
.NET Core & ASP.NET Core 1.0在Redhat峰会上正式发布
.NET Core:面向未来的开源跨平台开发技术
微软说它深爱着Linux,现在它用行动证明了
移植.NET Core计划,整合各平台变得更简单了!
ASP.NET Core 介绍
通过几个Hello World感受.NET Core全新的开发体验
ASP.NET Core 运行原理剖析1:初始化WebApp模版并运行
.NET Core系列 : 1、.NET Core 环境搭建和命令行CLI入门
Asp.Net Core 发布和部署( MacOS + Linux + Nginx )
Asp.Net Core 发布和部署(Linux + Jexus )
学习ASP.NET Core,你必须了解无处不在的“依赖注入”
.NET Core应用类型(Portable apps & Self-contained apps)
.NET Core 1.0发布:微软开源跨平台大布局序幕
ASP.NET Core 运行原理剖析2:Startup 和 Middleware(中间件)
在Windows Server 2012 R2 Standard 部署 ASP.NET Core程序
ASP.NET Core 开发-Entity Framework (EF) Core 1.0 Database First
拥抱.NET Core,跨平台的轻量级RPC:Rabbit.Rpc
使用 dotnet watch 开发 ASP.NET Core 应用程序
原文地址:http://www.cnblogs.com/linezero/p/aspnetcoreubuntu.html
.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注
- ASP.NET Core 发布至Linux生产环境 Ubuntu 系统
- Jexus 5.8.2 正式发布为Asp.Net Core进入生产环境提供平台支持
- 结合Jexus + Kestrel 部署 asp.net core 生产环境
- .NET Core程序发布到Ubuntu系统
- 将ASP.NET Core应用程序部署至生产环境中(CentOS7)
- Asp.net Core 打包发布 (Linux+Nginx)
- ASP.NET Core 指定环境发布(hosting environment)
- ASP.NET Core 发布到 MAC(macOS系统)实践
- 测试 asp.net core 发布
- 发布 ASP.NET Core 应用
- Asp.Net Core 发布和部署( MacOS + Linux + Nginx )
- Asp.Net Core 发布和部署(Linux + Jexus )
- Asp.Net Core 发布和部署( MacOS + Linux + Nginx )
- ASP.NET Core 网站发布到Linux服务器
- .NET跨平台之旅:博问站点迁移至ASP.NET Core on Linux并发布上线
- 发布asp.net core 应用 在IIS
- Asp.Net Core 发布到IIS
- .net Core 生产环境 KestrelServer + Shell 实践
- 快速了解一个python模块
- ASP.NET Core "完整发布,自带运行时" 到jexus
- 开放重定向(Open Redirection)
- ASP.NET Core Docker部署
- 跨站请求伪造(CSRF/XSRF)
- ASP.NET Core 发布至Linux生产环境 Ubuntu 系统
- ActiveMQ(二)
- 跨站脚本攻击(XSS)
- 使用 dotnet watch 开发 ASP.NET Core 应用程序
- .NET 框架兼容性简介
- 拥抱.NET Core,跨平台的轻量级RPC:Rabbit.Rpc
- .NET 框架兼容性简介
- ASP.NET Core 开发-Entity Framework (EF) Core 1.0 Database First
- 在Windows Server 2012 R2 Standard 部署 ASP.NET Core程序