Core 发布至Linux
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
如果你觉得本文对你有帮助,请点击“推荐”,谢谢。
博客示例代码:GitHub
Core 发布至Linux的更多相关文章
- ASP.NET Core 发布至Linux生产环境 Ubuntu 系统
ASP.NET Core 发布至Linux生产环境 Ubuntu 系统,之前跟大家讲解了 dotnet publish 发布,而没有将整个系统串起来. 今天就跟大家综合的讲一下ASP.NET Core ...
- AspNet Core 发布到Linux系统和发布IIS 注意项
AspNet Core 发布到Linux系统和发布IIS 注意项 1.发布时需要注意的 2.Windows Server 2012 api-ms-win-crt-runtime-l1-1-0.dll ...
- .Net Core发布到Linux下验证码失效处理方案详解
.net Core 部署到在 CentOS7下后,验证码打不开,报The type initializer for 'Gdip' threw an exception.异常 运行含图片处理时发生异常: ...
- asp.net core发布到linux
在发布到linux的过程中出现两个问题现在总结一下: 我的虚拟机是安装到本机上面的,所以,应该在虚拟机的设置里面设置端口映射.具体设置如下: 选择vm上方的编辑 在弹出的框中选择VMnet8,点击下方 ...
- asp.net core 发布到linux下Docker
1.linux Docker 安装 内核升级:https://www.cnblogs.com/zksfyz/p/7919425.html 安装: https://www.runoob.com/do ...
- .Net Core 发布到 Linux 上时遇到的问题记录
目前遇到的问题: 1.路径区分大小写及路径用“/”,而不是常用的"\\". windows下路径为:"xxxx\\yyyy",Linux路径下为:"x ...
- ASP.NET Core 发布到Linux需要注意的地方
此文持续更新. 读取本地目录的问题, 在windows下,一般会用“\”,但在Linux中用的是“/” 待续..
- .net 6 (.net core) 发布到linux docker中
第一步:VMware 安装 虚拟机Linux系统,本文以 CentOS 为例 .
- 将.net core 发布到Linux上的一些坑
目前遇到的,之后遇到再加 1.时间格式要用.ToString("yyyy-MM-dd HH:mm:ss"); 2.文件路径要用Path.Combine(),IHostingEnvi ...
随机推荐
- 自己定义flash的宽和高
前段时间做个项目,是个网页的聊天界面,聊天的内容使用flash制作,我需要将flash的swf插件放到页面上,然后获取聊天内容, 1.将文件在页面上显现出来: 如图,正中间使用后台制作出来的swf文件 ...
- 转 --maven系列之一 简介
http://blog.csdn.net/jiuqiyuliang/article/details/41076215 [项目管理和构建]——Maven简介(一) 2015-01-31 21:27 68 ...
- input 输入验证
js验证输入框内容 只能输入英文 只能输入英文 无法粘贴,右键不会弹出粘贴菜单 只能输入数字: 只能输入数字,小数点: 只能输入数字,小数点,下划线: 只能输入英文和数字: 只能输入汉字: 禁止输入法 ...
- ring3 dll hide
ZwQuerySystemInformation(SystemProcessInformation,SystemInformation,Length,ReturnLength); pS ...
- linux install nginx error
1 2 3 4 5 6 7 8 9 10 11 [mahao01@127.0.0.1 nginx-1.2.9]$ make make -f objs/Makefile make[1]: Enterin ...
- 6)图[2]Prim算法[最小生成树]
Prim 算法 求解方法: 首先将所指定的起点作为已选顶点,然后反复在满足如下条件下的边中选择一条最小边,直到 所有顶点已成为已选顶点为止(选择n-1条边). #include "iostr ...
- js跨域及解决方法
什么是跨域 JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象.但在安全限制的同时也给注入iframe或是ajax应用上带来了不少麻烦.这里把涉及到跨域的一些问题简单地整理一下: 首 ...
- iOS开发的准备
一.程序设计语言 上一讲已经说到:要想开发一款软件,首先得学习一些相应的程序设计语言.至于iOS开发,需要学习的语言主要有:C.C++.Objective-C. 二.是否需要计算机专业知识 可能很多人 ...
- java核心技术学习笔记之三程序设计结构
一 基本数据结构 必须包括在类中 必须具备 public static main方法 大小写敏感 二.数据类型 四种整数类型: Int 4字节 short 2字节 long8字节 byte1字节 二种 ...
- 转: Promises与Javascript异步编程
在如今都追求用户体验的时代,Ajax应用真的是无所不在.加上这些年浏览器技术.HTML5以及CSS3等的发展,越来越多的富Web应用出现:在给与我们良好体验的同时,Web开发人员在背后需要处理越来越多 ...