下次可能是讲.NET5了或是讲使用KubeOperator工具部署ks8再到项目部署)

这里我参照 微软文档

一,项目环境:

  系统:UbuntuServer18.04

  ASP.NET项目:.NetCore MVC工程,框架是Core2.2,启动文件是工程dll。

二,安装NetCore环境:

1.将 Microsoft 包签名密钥添加到受信任密钥列表,并添加包存储库。

wget https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
  • 1.
  • 2.

2.安装.NET Core SDK或安装运行时(服务器不需要开发应用使用运行时就可以)

  安装SDK:
sudo apt-get update; \
  sudo apt-get install -y apt-transport-https && \
  sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-2.2
  • 1.
  • 2.
  • 3.
  • 4.
  安装运行时:
sudo apt-get update; \
  sudo apt-get install -y apt-transport-https && \
  sudo apt-get update && \
  sudo apt-get install -y aspnetcore-runtime-2.2
  • 1.
  • 2.
  • 3.
  • 4.

   查看安装完成的信息(dotnet --info):

root@servercore:~# dotnet --info

Host (useful for support):
  Version: 2.2.8
  Commit:  b9aa1abc51

.NET Core SDKs installed:
  No SDKs were found.

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.2.8 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.2.8 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.2.8 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.

  可以看到我只安装了runtime没有安装SDK。

三,安装Nginx

root@root:~# apt-get install nginx  #安装命令 (sudo service nginx start #启动命令)

root@root:~# nginx -v  #查看版本
nginx version: nginx/1.14.0 (Ubuntu)

局域网其他主机输入:http://服务器IP/index.nginx-debian.html,查看安装效果

部署方式(二)-Ubuntu18+.netcore+Nginx+Supervisor部署ASP.NET项目_Core

四,上传网站文件,配置Nginx文件

  1.使用Xftp或者其它ftp工具把网站网站文件上传到服务器上。
  2.修改nginx配置文件(etc/nginx/sites-available/default):
server {
    #监听端口
    listen 80;
    listen [::]:80;
    #域名可以有多个,用空格隔开
    #server_name apelearn.com;
    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;
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.

在网站文件夹下输入下面命令,启动网站(默认使用端口5000)

dotnet 你的启动项.dll
  • 1.

备注:这里我的网站一部分功能不能用,所以我又装了SDK。

root@servercore:~# dotnet --info
  • 1.
.NET Core SDK (reflecting any global.json):
 Version:   2.2.402
 Commit:    c7f2f96116

Runtime Environment:
 OS Name:     ubuntu
 OS Version:  18.04
 OS Platform: Linux
 RID:         ubuntu.18.04-x64
 Base Path:   /usr/share/dotnet/sdk/2.2.402/

Host (useful for support):
  Version: 2.2.8
  Commit:  b9aa1abc51

.NET Core SDKs installed:
  2.2.402 [/usr/share/dotnet/sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.2.8 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.2.8 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.2.8 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.

还是不行,后来发现是数据库链接写了多个漏改了。

五,设置Supervisor守护程序

  mono里我们用了shell脚本设置开机启动,这次用Supervisor实现。

1.安装supervisor:

apt-get install supervisor
  • 1.

2.新建supervisor配置文件。

echo_supervisord_conf > /etc/supervisord.conf
  • 1.

3.修改/etc/supervisord.conf配置文件,添加

[include]
files = /etc/supervisor/conf.d/*.conf
  • 1.
  • 2.

4. 新增.net core 启动的配置文件

vim /etc/supervisor/conf.d/hwappService.conf
  • 1.

5.填写以下内容:

[program:hwappService]
command=dotnet /usr/www/Czar.Cms.Admin.dll  #要执行的命令
directory=/usr/www/  #dll所在的文件夹
  • 1.
  • 2.
  • 3.
autostart=true
autorestart=true
stderr_logfile=/var/log/sampleMicroService.err.log  #错误日志
stdout_logfile=/var/log/sampleMicroService.out.log  #输出日志
user=root  #用户
stopsignal=INT
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

引自:

补充:

1.ASP.NET Core Runtime与.NET Core Runtime的区别

镜像地址

镜像名称

镜像说明

mcr.microsoft.com/dotnet/core/runtime

.NET Core Runtime

部署.NET Core控制台程序

mcr.microsoft.com/dotnet/core/runtime-deps 

.NET Core Runtime Dependencies

部署自包含的部署应用程序

mcr.microsoft.com/dotnet/core/sdk 

.NET Core SDK

构建.NET Core(或ASP.NET Core应用程序)

mcr.microsoft.com/dotnet/core/aspnet 

ASP.NET Core Runtime

部署ASP.NET Core应用程序

   引自:

2.ubuntu下.NET Core手动更换版本(卸载再安装)


作者:꧁执笔小白꧂