ASP.NET Core 发布至Linux生产环境 Ubuntu 系统
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 系统相关推荐
- 发布ASP.NET Core程序到Linux生产环境
原文翻译:Publish to a Linux Production Environment 作者:Sourabh Shirhatti 在这篇文章里我们将介绍如何在 Ubuntu 14.04 Serv ...
- asp.net core 发布到 docker 容器时文件体积过大及服务端口的配置疑问
在 asp.net core 发布时,本人先后产生了3个疑问. 1.发布的程序为什么不能在docker容器中运行 当时在window开发环境中发布后,dotnet xxx.dll可以正常运行:但放入d ...
- ASP.NET Core 实战:Linux 小白的 .NET Core 部署之路
一.前言 最近一段时间自己主要的学习计划还是按照毕业后设定的计划,自己一步步的搭建一个前后端分离的 ASP.NET Core 项目,目前也还在继续学习 Vue 中,虽然中间断了很长时间,好歹还是坚持 ...
- Asp.Net Core 发布到IIS
一.Asp.Net Core 发布到IIS 1.许多时候在WindowsServer服务器上已经安装了IIS,监听80端口,那么Asp.Net Core应用的自宿主就没法监听80端口 2.也就是在Wi ...
- ASP.NET Core 2.0 MVC 发布部署--------- ASP.NET Core 发布的具体操作
ASP.NET Core 发布的具体操作 下面使用C# 编写的ASP.NET Core Web项目示例说明发布的全过程. 1.创建项目 选择"文件" > "新建&q ...
- 【ketlle】本地开发kitlle job提交至linux生产环境上执行流程
[ketlle]本地开发kitlle job提交至linux生产环境上执行 前言 操作步骤 后记 前言 因为kettle提供可视化界面,所以我们在本地开发的时候拖拽开发十分便捷,开发完成后,我们需要丢 ...
- 【原生态跨平台: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 ...
- .NET Conf 2020 - 基于ASP.NET Core构建可热插拔的插件化系统
文章标题:.NET Conf 2020 - 基于ASP.NET Core构建可热插拔的插件化系统 作者:Lamond Lu 项目地址:https://github.com/lamondlu/CoolC ...
- 打造前端 Deepin Linux 工作环境——安装系统
打造前端 Deepin Linux 工作环境--安装系统 为什么选择 Deepin Linux 系统 在 linux 操作系统的选择上,我个人不喜欢太花里胡哨的东西.曾经一度认为 linux 系统只应 ...
最新文章
- 特征选择的通俗讲解!
- 编程题:两个数比较大小,之后用变量t互换。
- python在财务领域的应用-浅谈财务智能化在实际工作中的运用
- Linux 搜索指令
- 2017年10月05日普及组 负进制
- vue与node和npm关系
- 从头学习linux C 冒泡法排序
- python中使用什么来实现异常捕捉_Python异常原理及异常捕捉实现过程解析
- 视觉控每天盯着桌面,少不了桌面手机壁纸图片,请收好
- SAP ERP与国内ERP系统的对比,为什么建议选SAP
- 用lnmp.org中的lnmp下安装ftp(pureftp)
- Spring中的AOP(8)
- Protus 8.6 及以上如何找到library文件夹
- 三极管基极限流电阻计算
- 多多客id是什么意思_【拼多多】关于多多客比价行为规范解释说明
- 安装 centos8 设置基础软件仓库时出错
- html5 旋转木马相册,HTML5 CSS3 专题 :诱人的实例 3D旋转木马效果相册
- mysql求分位数_给Mysql加自定义函数计算百分位数(percentile)。
- Mac网络热点的配置Charles移动端抓包实战
- 题目 给定一个字符串所表示的括号序列,包含以下字符: '(', ')', '{', '}', '[' and ']', 判定是否是有效的括号序列。 样例 括号必须依照 ()顺序表示, ()[]
热门文章
- 新手python爬虫代码_新手小白必看 Python爬虫学习路线全面指导
- linux系统外接硬盘_linux通过fstab自动挂载外接磁盘
- 2d游戏引擎_游戏60秒:RTS游戏从2D到3D的蜕变
- 限定概率抽奖_圣诞节LOL紫色宝箱30连抽,限定全是冰雪,节日气氛很浓
- easyui 动态设置单元格控件_比Excel还简单,实现动态报表原来只需要十分钟!
- box怎么用 latency_换轴记给铝厂 F96 牛油果,换一套 Box 重力蓝
- python多个strip_python 格式化多个Python3中strip()、lstrip()、rstrip()用法详解
- 提交自己开发的MR作业到YARN上运行的步骤
- 20个Pandas数据实战案例,干货多多
- 7000字 23张图,Pandas一键生成炫酷的动态交互式图表