Asp.net Core应用程序在Linux上部署的图文详解

1. 准备工作

在开始部署Asp.net Core应用程序之前,需要完成以下准备工作:

1.1 安装Linux环境

首先需要在Linux服务器上安装所需的基本环境,包括.NET Core运行时、ASP.NET Core运行时、Node.js、npm等,以及用于安装.NET Core SDK的wget和libunwind8。

安装完成后,可以使用以下命令来验证.NET Core是否已正确安装:

dotnet --info

如果显示了.NET Core版本信息,则说明已成功安装。

1.2 准备Asp.net Core应用程序

在开始部署Asp.net Core应用程序之前,需要将应用程序打包为Linux可执行文件。可以使用以下命令将应用程序打包为self-contained可执行文件:

dotnet publish -c Release -r linux-x64

其中,-c选项用于指定发布模式为Release,-r选项用于指定运行时为Linux x64。

2. 部署Asp.net Core应用程序

完成准备工作后,可以开始将Asp.net Core应用程序部署到Linux服务器上。以下是详细步骤:

2.1 上传应用程序文件

使用scp命令将应用程序发布文件夹上传到Linux服务器上:

scp -r /path/to/publish/folder user@linux-server:/path/to/app/folder

其中,user为Linux服务器的用户名,linux-server为Linux服务器的IP地址或主机名,/path/to/publish/folder为应用程序发布文件夹所在的本地路径,/path/to/app/folder为应用程序在Linux服务器上的目标路径。

2.2 配置Nginx作为反向代理

在Linux服务器上安装Nginx,并配置为应用程序的反向代理。可以使用以下命令安装Nginx:

sudo apt-get install nginx

安装完成后,在/etc/nginx/sites-available/目录下创建一个新文件,例如myapp,写入以下配置信息:

server {

listen 80;

server_name myapp.com; # 将myapp.com替换为实际的域名或IP地址

location / {

proxy_pass http://localhost:5000; # 将5000替换为实际的Kestrel端口号

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;

}

}

保存配置文件后,在/etc/nginx/sites-enabled/目录下创建一个符号链接,将myapp文件链接到该目录。然后使用以下命令重启Nginx:

sudo service nginx restart

Nginx已配置完成,可以通过访问http://myapp.com来测试应用程序是否可以通过Nginx反向代理访问。

2.3 启动应用程序

使用以下命令进入应用程序发布文件夹,并启动应用程序:

cd /path/to/app/folder

./myapp

其中,myapp为应用程序的可执行文件名。

启动应用程序时,可能会出现缺少依赖项的错误。可以使用以下命令安装缺少的依赖项:

sudo apt-get install libunwind8

应用程序已部署完成,可以通过Nginx反向代理访问。

后端开发标签