ASP.Net Core 运行在Linux(Ubuntu)
这段时间一直在研究asp.net core部署到linux,今天终于成功了,这里分享一下我的部署过程。
Linux Disibutaion:Ubuntu 14.04
Web Server:nginx、Kestrel
1、安装.net core
sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ trusty main" > /etc/apt/sources.list.d/dotnetdev.list' sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 417A0893 sudo apt-get update sudo apt-get install dotnet-dev-1.0.0-preview2.1-003177
2、安装.net core成功之后,新建asp.net core mvc项目
#新建文件夹hwapp
mkdir hwapp #进入hwapp文件夹
cd hwapp #新建asp.net core mvc项目
dotnet new -t web #还原.net core nuget包
dotnet restore
3、到这一步还无法发布项目,我们需要安装npm,gulp,bower这三个工具
#安装npm
sudo apt-get install npm #安装gulp
sudo npm install gulp -g #安装bower
sudo npm install bower -g
4、完成之后,就可以对项目进行发布了
#发布项目,默认发布路径在当前项目下bin/Debug/netcoreapp1.1/publish/
dotnet publish
5、下面我们就要安装nginx做反向代理
#安装nginx
sudo apt-get install nginx
#启动nginx
sudo service nginx start
因为要使用nginx做asp.net core网站的反向代理,我们需要修改nginx的默认配置文件/etc/nginx/sites-available/default ,将以下内容替换默认配置:
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配置是否zhengque
sudo nginx -t
#重新加载nginx配置
sudo nginx -s reload
6、安装supervisor
我们部署的网站并不会自己启动并运行,这里我们就需要用到supervisor这个工具,保证网站的启动和持续运行。
#安装supervisor
sudo apt-get install supervisor
配置supervisor,进入目录(/etc/supervisor/conf.d/),新建配置文件hwapp.conf,将如下内容复制到文件中
[program:hwapp]
command=/usr/bin/dotnet /var/hwapp/publish/hwapp.dll --server.urls:http://*:5000
directory=/var/hwapp/publish
autostart=true
autorestart=true
stderr_logfile=/var/log/hwapp.err.log
stdout_logfile=/var/log/hwapp.out.log
environment=ASPNETCORE_ENVIRONMENT=Production
user=www-data
stopsignal=INT
关闭并启动supervisor
sudo service supervisor stop
sudo service supervisor start
到此,整个部署流程完成了!
下图在我部署在linux中的asp.net core网站的访问页面:

ASP.Net Core 运行在Linux(Ubuntu)的更多相关文章
- ASP.Net Core 运行在Linux(CentOS)
Linux Disibutaion:CentOS 7.1 Web Server:Apache.Kestrel 1.安装.net core sudo yum install libunwind libi ...
- ASP.NET Core 发布至Linux生产环境 Ubuntu 系统
ASP.NET Core 发布至Linux生产环境 Ubuntu 系统,之前跟大家讲解了 dotnet publish 发布,而没有将整个系统串起来. 今天就跟大家综合的讲一下ASP.NET Core ...
- 在Linux安装ASP.NET Core运行时环境
我使用的是Centos7 ,其它的Linux请参考微软文档 微软官方介绍文档: https://www.microsoft.com/n ...
- ASP.NET Core 运行原理剖析1:初始化WebApp模版并运行
ASP.NET Core 运行原理剖析1:初始化WebApp模版并运行 核心框架 ASP.NET Core APP 创建与运行 总结 之前两篇文章简析.NET Core 以及与 .NET Framew ...
- ASP.NET Core 实战:Linux 小白的 .NET Core 部署之路
一.前言 最近一段时间自己主要的学习计划还是按照毕业后设定的计划,自己一步步的搭建一个前后端分离的 ASP.NET Core 项目,目前也还在继续学习 Vue 中,虽然中间断了很长时间,好歹还是坚持 ...
- Asp.Net Core部署到Linux服务器
从2016年7月, .NET Core1.0 正式发布开始,由于时间问题,我没怎么关注过.NET Core,最近刚抽出点时间研究了下,先讲下如何把ASP.NET Core部署到Linux上吧.这里我用 ...
- Install .NET Core Runtime on Linux Ubuntu 16.04 x64
原文链接https://www.microsoft.com/net/download/linux-package-manager/ubuntu16-04/runtime-current nstall ...
- ASP.NET Core MVC 在linux上的创建及发布
前言 ASP.NET core转眼都发布半月多了,社区最近也是非常活跃,虽然最近从事python工作,但也一直对.NET念念不忘,看过了园区大神们搭建的Asp.net core项目之后,自己也是跃跃欲 ...
- ASP.NET Core 运行原理剖析2:Startup 和 Middleware(中间件)
ASP.NET Core 运行原理剖析2:Startup 和 Middleware(中间件) Startup Class 1.Startup Constructor(构造函数) 2.Configure ...
随机推荐
- leetcode@ [136/137] Single Number & Single Number II
https://leetcode.com/problems/single-number/ Given an array of integers, every element appears twice ...
- adb pull命令复制android数据库文件.db到电脑
1.win+r cmd进入命令行 2.cd 进入[sdk]/platform-tools目录下 3.执行下面命令行,复制xxx.db到F:/dest adb pull /data/data/[pack ...
- INPUT输入框灰体提示
INPUT输入框灰体提示 <input type="text" value='15 words limit' style="color:#999999" ...
- PC问题-使用BAT方法清理Delphi临时文件
@echo offdel /S *.~*del /S *.dcudel /S *.dskdel /S *.hppdel /S *.ddpdel /S *.mpsdel /S *.mptdel /S * ...
- js为表格添加行和列
<table id="studentTable" align="center" border="1px;" cellpadding=& ...
- [一位菜鸟的COCOS-2D编程之路]打飞机中机种敌机和战机损毁时的爆炸效果
1.第一步,添加爆炸动画 //添加玩家飞机飞行动画 id _playerFlyAction; id _playerBlowupAnimation; //战机爆炸动画 id _enemyBlowupAn ...
- 用到的IOS知识点小结(1)
以下内容是在ios6模拟器运行成功的,或者与我自己的开发环境有关系. 1.强制转屏,不过不推荐,是私有方法 // if ([[UIDevice currentDevice] respondsTo ...
- Redis实战之Redis + Jedis
用Memcached,对于缓存对象大小有要求,单个对象不得大于1MB,且不支持复杂的数据类型,譬如SET 等.基于这些限制,有必要考虑Redis! 相关链接: Redis实战 Redis实战之Redi ...
- PostgreSQL的prepare 和 execute 动作背后
我给PostgreSQL的源代码加入了调试信息以后,会有如下表现: 我执行Prepare: postgres=# prepare s(; PREPARE postgres=# 背后的反应: ** In ...
- AFNetworking2.x 使用过程中遇到的问题
1.//以下写一下关于AFNetworking2.0的GET数据请求问题,刚開始的时候没有写以下标红的代码,所以导致有一个问题.错误显演示样例如以下: Error: Error Domain=AFNe ...