目标:完成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. BestCoder4 1002 Miaomiao's Geometry (hdu 4932) 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4932 题目意思:给出 n 个点你,需要找出最长的线段来覆盖所有的点.这个最长线段需要满足两个条件:(1 ...

  2. hadoop datanode启动失败(All directories in dfs.data.dir are invalid)

    由于hadoop节点的磁盘满了,导致节点死掉,今天对其进行扩容.首先,将原节点的数据拷贝到目标节点下,从而避免数据的丢失,但是在执行hadoop_daemon.sh start datanode后没有 ...

  3. Linux下使用pip安装keras

    Keras是一个底层使用Theano或TensorFlow的深度学习框架,它的设计参考了Torch,用Python语言编写,也很方便使用Python调用,是一个高度模块化的神经网络库,支持使用GPU和 ...

  4. CodeForces-816B:Karen and Coffee (简单线段树)

    To stay woke and attentive during classes, Karen needs some coffee! Karen, a coffee aficionado, want ...

  5. NOIP2005题解

    传送门 考查题型 dp 模拟 贪心 T1 谁拿了最多的奖学金 题目描述 某校的惯例是在每学期的期末考试之后发放奖学金.发放的奖学金共有五种,获取的条件各自不同: 1) 院士奖学金,每人8000元,期末 ...

  6. 嵌入式Linux学习方法——给那些彷徨者(上)

    要想学好嵌入式Linux,首先要解决两个重要问题: 1. 学什么? 2. 怎么学? 首先解决第一个问题. 嵌入式Linux的系统架构包括软件和硬件两个部分,如下图: 再来看看一个成熟的嵌入式产品的开发 ...

  7. http://www.cnblogs.com/Javame/p/3632473.html

    http://www.cnblogs.com/Javame/p/3632473.html

  8. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 07. View的Model 和 Tag Helpers

    student添加一个属性BirthDate 然后把生成数据的地方,字段也加上 建立ViewModel list转换为ViewModel 进一步改进代码 StudentViewModel HomeIn ...

  9. 任务26:dotnet watch run 和attach到进程调试

    任务26:dotnet watch run 和attach到进程调试 dotnet watch run 的一种调试方法 打开VSCode,先关闭当前的文件夹 Ctrl+~快捷键 打开窗体. ls应该是 ...

  10. 51nod 1344 【前缀和】

    思路:求一下最小负数的前缀和 #include<cstdio> #include <map> #include<iostream> #include<stri ...