zoukankan      html  css  js  c++  java
  • ubuntu上部署windows开发的dotnet core程序

    目标:完成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.1 

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

    dotnet publish --framework netcoreapp2.1 --runtime ubuntu.14.04-x64 --output "E:PublishCoreApp" --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:9001        ;访问方式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 81; # listen somename:8080; # 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
  • 相关阅读:
    [Swift]字符串(String类、NSString类)常用操作
    [Swift实际操作]九、完整实例-(1)在iTunesConnect网站中创建产品
    很无语,吐个槽
    很无语,吐个槽
    创业有感-表达能力很关键
    宏定义#define整理
    C++ tab键实现自动补全输入功能
    cmake的使用笔记
    c++智能指针使用笔记
    用static 创建类的单例
  • 原文地址:https://www.cnblogs.com/gxwang/p/9776331.html
Copyright © 2011-2022 走看看