微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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:\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

 

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

原文地址:https://www.jb51.cc/netcore/606216.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐