目标:完成windows上开发的dotnet core程序部署至linux服务器上(Ubuntu 14.04)

windows上开发dotnet core很简单,安装好VS2017,建立相关类型的项目进行开发即可。

Linux服务器中需要做以下几个工作:

1.安装dotnet core, 运行dotnet程序必备条件。

2.安装supervisor守护进程,可以帮助你自动启动站点。

3.安装nginx做代理

1. 安装dotnet core

#依次执行下面的命令,安装的版本有问题的话,按照错误提示修改版本号即可
sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ yakkety 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-2.0.

windows中的项目使用下面的命令行打包部署。需要在项目的项目文件(CoreApp.csproj)文件上增加一个配置节点。

dotnet publish --framework netcoreapp2. --runtime ubuntu.14.04-x64 --output "E:\Publish\CoreApp" --configuration Release

需要增加的配置节点

<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
<!--增减对linux支持-->
<RuntimeIdentifiers>ubuntu.14.04-x64</RuntimeIdentifiers>
</PropertyGroup>

将部署包复制到linux服务器上,记住目录,在supervisor配置文件中需要使用到这个目录。

2.supervisor守护进程。dotnet core程序在Linux上,每次都需要dotnet run一下,如果遇到服务器重启或者站点挂了需要重启,就每次都要自己手动敲一下dotnet run命令。安装这个守护进程,让他帮忙监控,一但发现相应的站点不在运行了,就自动帮你执行启动命令。

//安装
sudo apt-get install supervisor //新建
touch CoreApp.conf //CoreApp.conf 添加如下内容
[program:CoreApp]
command=dotnet CoreApp.dll
directory=/home/gxwang/publish
environment=ASPNETCORE__ENVIRONMENT=Production
user=www-data
stopsignal=INT
autostart=true
autorestart=true
startsecs=1
stderr_logfile=/var/log/CoreApp.err.log
stdout_logfile=/var/log/CoreApp.out.log //重新加载配置
sudo supervisorctl shutdown && sudo supervisord -c /etc/supervisor/supervisord.conf
//或重启supervisor
sudo service supervisor stop
sudo service supervisor start

supervisor开启web端管理,在/etc/supervisor 目录下,打开supervisor.conf 文件,添加如下配置项。

[inet_http_server]         ;HTTP服务器,提供web管理界面
port=127.0.0.1: ;访问方式IP+端口
username=admin ;登录时需要身份验证的话,添加用户名和密码
password=admin123

3.nginx

修改nginx配置,

sudo vi /etc/nginx/sites-available/default
#default配置文件下,增加一个虚拟主机,可以使用同一台机器监听不同端口
# another virtual host using mix of IP-, name-, and port-based configuration
#
server {
listen ;
# listen somename:;
# server_name somename alias another.alias;
# root html;
# index index.html index.htm;
#
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 nginx -t
sudo nginx -s reload

ubuntu上部署windows开发的dotnet core程序的更多相关文章

  1. 在linux上部署自己开发的web项目

    在linux上部署自己开发的web项目 前言:相信有很多做开发的小伙伴和我之前一样,只会在windows环境下,利用开发工具开发运行web项目,但是却不知道怎么把开发好的项目部署到linux服务器上去 ...

  2. 手把手教你用Jenkins自动发布dotnet core程序

    Jenkins部分 首先,我们要有个Jenkins咯,下载链接:https://jenkins.io/download/ 我们安装官网教程安装好jenkins,安装教程略.... 嗯?不是说好手把手么 ...

  3. Asp.Net Core 2.0 之旅---在Ubuntu上部署WEB应用程序

    1.Ubuntu 上 安装NET Core 2.0 SDK 第一步的安装,微软大佬已经写的非常详细了=>直达链接,按照教程来即可. 2.将我们的WEB 发布到一个文件夹,将这个文件夹打包成 压缩 ...

  4. 在IIS上部署你的ASP.NET Core项目

    概述 与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角色转发请求到Kest ...

  5. 在IIS上部署你的ASP.NET Core项目 (转载)

    概述 与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角色转发请求到Kest ...

  6. 【转】在IIS上部署你的ASP.NET Core项目

    概述 与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角色转发请求到Kest ...

  7. windows系统中Dotnet core runtime 安装后,无法启动次程序,因为计算机中丢失api-ms-win-crt-runtime-l1-1-0.dll的解决方法

    因为dotnet core runtime依赖vc++2015,如果系统未安装vc++2015则会报上面的错误 解决方案:先下载安装vc++2015再安装dotnet core runtime, vc ...

  8. node.js在ubuntu上和windows上的安装

    Ubuntu 上安装 Node.js Node.js 源码安装 以下部分我们将介绍在Ubuntu Linux下安装 Node.js . 其他的Linux系统,如Centos等类似如下安装步骤. 在 G ...

  9. Ubuntu上部署Jenkins

    1.Ubuntu上安装jdk.tomcat https://blog.csdn.net/evankaka/article/details/50463782 2.Ubuntu上配置Jenkins htt ...

随机推荐

  1. hdu 4302 Holedox Eating(优先队列/线段树)

    题意:一只蚂蚁位与原点,在x轴正半轴上会不时地出现一些蛋糕,蚂蚁每次想吃蛋糕时选取最近的去吃,如果前后距离相同,则吃眼前的那一块(即方向为蚂蚁的正前),求最后蚂蚁行进距离. 思路:优先队列q存储蚂蚁前 ...

  2. oracle自动表分析

    oracle 表的统计信息,跟他的执行计划很有关联 执行计划的正常是否,跟SQL的执行速度很有关系 首先讲解一下如何查看一个数据库的是否开启自动统计分析 1.查看参数:STATISTICS_LEVEL ...

  3. ubuntu 源、codename 与 sources.list 文件

    查看 codename $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubunt ...

  4. How to study Watir?

    我在群空间,总是看到很多Watir新手,反复的问:我对元素的定位怎么又出错?我该从哪里着手啊?我给一个我认为最简单方便的学习方法.1. Ruby语法基础要入门,网上有一个不到2M的帮助文档,从头到尾仔 ...

  5. PhpStorm之设置字体大小

    1.点击左上角的File,再点击setting:(Ctrl+Alt+S) 2.进入 Editor  /  General,选择 Change font size (Zoom) with Ctrl+Mo ...

  6. POJ2371【水题】

    mdzz- wa了一发,没看清题意,真是智障 //#include <bits/stdc++.h> #include<iostream> #include<string. ...

  7. P1648 看守

    传送门 以二维的两个点\((x1,y1),(x2,y2)\)为例,那么他们之间的曼哈顿距离肯定为一下四个之一\((x1-x2)+(y1-y2)\),\((x2-x1)+(y1-y2)\),\((x1- ...

  8. 数位dp真·浅谈 By cellur925

    预警:由于是从$Vergil$学长那里和$Mathison$大神那里学来的,所以清一色记忆化搜索!qwq 巨佬的数位dp讲解(未来的咕咕日报头条): https://www.luogu.org/blo ...

  9. 安装elasticsearch-head

    直接安装chrome插件,用npm老出错,shit 再说吧 使用插件连接的时候反而没有出错,后续如果出错 , 可以配置 elasticsearch下config下的y 在新的电脑上使用发现格式不对,比 ...

  10. 温习LOGO语言

    LOGO是什么? LOGO语言是一种早期的编程语言,也是一种与自然语言非常接近的编程语言,它通过"绘图"的方式来学习编程,对初学者特别是儿童进行寓教于乐的教学方式. LOGO语言创 ...