ASP.NET Core 在 Linux 上的部署实战:小白进阶之路

360影视 日韩动漫 2025-04-18 08:51 2

摘要:在当今软件开发领域,ASP.NET Core 以其跨平台的特性和强大的功能,成为众多开发者构建 Web 应用的首选框架之一。而 Linux 凭借其开源、稳定、高效的优势,在服务器端市场占据重要地位。将 ASP.NET Core 应用部署到 Linux 服务器上

在当今软件开发领域,ASP.NET Core 以其跨平台的特性和强大的功能,成为众多开发者构建 Web 应用的首选框架之一。而 Linux 凭借其开源、稳定、高效的优势,在服务器端市场占据重要地位。将 ASP.NET Core 应用部署到 Linux 服务器上,既能发挥 ASP.NET Core 的灵活性,又能借助 Linux 的性能优势,实现最佳的应用运行效果。本文将为初学者详细介绍 ASP.NET Core 在 Linux 上的部署过程。

一、前期准备

(一)安装.NET SDK

在 Linux 系统上部署 ASP.NET Core 应用,首先需要安装.NET SDK。以 Ubuntu 系统为例,打开终端,执行以下命令添加 Microsoft 软件源:

wget https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb -O packages-microsoft-prod.deb

sudo dpkg -i packages-microsoft-prod.deb

然后安装.NET SDK:

sudo apt-get update;

sudo apt-get install -y dotnet-sdk-3.1

这里的 3.1 是版本号,可根据实际需求选择合适的版本。

(二)准备 ASP.NET Core 项目

确保本地已经有一个完整的 ASP.NET Core 项目。如果是从代码仓库获取项目,使用 git clone 命令将项目克隆到本地目录。在项目目录下,通过 dotnet build 命令编译项目,确保项目没有编译错误。

二、项目发布

在本地开发环境中,打开终端并切换到项目的根目录,执行以下命令发布项目:

dotnet publish -c Release -o out

其中, -c Release 表示以发布模式进行编译, -o out 表示将发布的文件输出到名为 out 的目录中。发布完成后, out 目录中会包含运行应用所需的所有文件,包括编译后的 DLL、配置文件和依赖项。

三、上传至 Linux 服务器

可以使用 scp 命令将发布目录(如 out 目录)上传到 Linux 服务器。例如,假设服务器的 IP 地址为 192.168.1.100 ,用户名为 user ,将本地 out 目录上传到服务器的 /var/www/myapp 目录下,可执行以下命令:

scp -r out user@192.168.1.100:/var/www/myapp

上传完成后,通过 SSH 连接到 Linux 服务器,检查上传的文件是否完整。

四、配置服务器环境

(一)设置防火墙规则

如果服务器启用了防火墙,需要开放应用程序所需的端口。例如,ASP.NET Core 应用默认使用 5000 端口,可执行以下命令开放该端口(以 Ubuntu 的 UFW 防火墙为例):

sudo ufw allow 5000

(二)安装 Web 服务器(以 Nginx 为例)

Nginx 是一款高性能的 Web 服务器和反向代理服务器。在 Linux 服务器上安装 Nginx:

sudo apt-get update

sudo apt-get install nginx

安装完成后,编辑 Nginx 的配置文件(通常位于 /etc/nginx/sites-available/default ),添加反向代理配置,将对 http://yourdomain.com (替换为实际域名或 IP 地址)的请求转发到本地运行的 ASP.NET Core 应用:

server {

listen 80;

server_name yourdomain.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;

}

}

保存配置文件后,重新加载 Nginx 配置:

sudo systemctl reload nginx

五、运行 ASP.NET Core 应用

在 Linux 服务器上,切换到上传的项目目录(如 /var/www/myapp ),执行以下命令运行应用:

dotnet myapp.dll

其中, myapp.dll 是应用的主 DLL 文件,根据实际项目名称替换。此时,ASP.NET Core 应用应该已经在 Linux 服务器上成功运行,通过浏览器访问配置的域名或 IP 地址,即可访问应用程序。

六、设置开机自启

为了确保服务器重启后应用能够自动运行,可以使用 systemd 来设置服务。创建一个新的服务文件,例如 /etc/systemd/system/myapp.service ,内容如下:

[Unit]

Description=My ASP.NET Core Application

After=network.target

[Service]

WorkingDirectory=/var/www/myapp

ExecStart=/usr/bin/dotnet /var/www/myapp/myapp.dll

Restart=always

RestartSec=10

SyslogIdentifier=myapp

User=www-data

[Install]

WantedBy=multi-user.target

保存文件后,执行以下命令启用并启动服务:

sudo systemctl enable myapp

sudo systemctl start myapp

至此,ASP.NET Core 应用在 Linux 服务器上的部署工作基本完成。通过以上步骤,初学者可以顺利将自己的 ASP.NET Core 项目部署到 Linux 环境中,开启跨平台开发与部署的新篇章。在实际应用中,还可以进一步优化和扩展,如配置 HTTPS、进行性能监控等,以满足不同的业务需求。

来源:opendotnet

相关推荐