百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

使用 NGINX 在 Linux 上部署 ASP.NET Core 应用程序

nanshan 2024-11-17 14:12 26 浏览 0 评论


概述:在使用 NGINX 作为反向代理的 Linux 服务器上部署 ASP.NET Core 应用程序是托管使用 ASP.NET Core 框架构建的 Web 应用程序的常用方法。ASP.NET Core 是一个跨平台框架,允许开发人员在各种操作系统(包括 Windows、macOS 和 Linux)上构建和运行应用程序。另一方面,NGINX 是一种高性能的 Web 服务器和反向代理,以其效率和可靠性而闻名。使用 NGINX 在 Linux 上部署 ASP.NET Core使用 Nginx 在 Linux 上部署 ASP.NET Core 应用程序涉及几个步骤。下面是该过程的高级概述:步骤 1:准备

在使用 NGINX 作为反向代理的 Linux 服务器上部署 ASP.NET Core 应用程序是托管使用 ASP.NET Core 框架构建的 Web 应用程序的常用方法。ASP.NET Core 是一个跨平台框架,允许开发人员在各种操作系统(包括 Windows、macOS 和 Linux)上构建和运行应用程序。另一方面,NGINX 是一种高性能的 Web 服务器和反向代理,以其效率和可靠性而闻名。

使用 NGINX 在 Linux 上部署 ASP.NET Core

使用 Nginx 在 Linux 上部署 ASP.NET Core 应用程序涉及几个步骤。下面是该过程的高级概述:

步骤 1:准备 Linux 服务器

  • 使用您喜欢的发行版(例如 Ubuntu 20.04 LTS)设置 Linux 服务器。

  • 在服务器上安装 .NET Core 运行时。

  • 在服务器上安装 Nginx。

wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb 
sudo dpkg -i packages-microsoft-prod.deb

sudo apt update
sudo apt install apt-transport-https
sudo apt install dotnet-sdk-6.0

sudo apt-get update && \ 
sudo apt-get install -y aspnetcore-runtime-7.0

步骤 2:构建 ASP.NET 核心应用程序

  • 在本地计算机上打开终端或命令提示符。

  • 导航到 ASP.NET Core 项目的根目录。

  • 执行以下命令,发布应用。

dotnet publish -c Release -r linux-x64 --self-contained true
  • 这将在文件夹中创建应用程序的独立版本(替换为目标框架版本)。bin/Release/netcoreapp3.1/linux-x64/publishnetcoreapp3.1

第 3 步:安装 Nginx

  • 使用发行版的包管理器在 Linux 服务器上安装 Nginx(例如,对于 Ubuntu)。apt-get install nginx

sudo apt update 
sudo apt install nginx
systemctl status nginx

步骤四:配置Nginx

  • 在目录中为您的 ASP.NET Core 应用程序创建一个 Nginx 配置文件。例如,创建一个包含以下内容的文件:/etc/nginx/sites-availablemyapp

server { 
listen 80;
server_name mydomain.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;
}
}
  • 替换为您的实际域或服务器 IP 地址。mydomain.com

  • 创建一个符号链接以启用站点配置:

sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/

步骤 5:将文件复制到服务器

  • 使用 SCP 或其他文件传输方法将已发布的文件从本地计算机上的文件夹复制到 Linux 服务器:publish

scp -r bin/Release/netcoreapp3.1/linux-x64/publish/* user@server_ip:/path/to/destination
  • 将 、 和 替换为适当的值。userserver_ip/path/to/destination

步骤 6:运行应用程序

  • 通过 SSH 连接到 Linux 服务器。

  • 导航到复制已发布文件的文件夹。

  • 使用以下命令运行 ASP.NET Core 应用程序:dotnet

  • 复制代码

  • dotnet YourAppName.dll

  • 替换为应用程序的 DLL 的实际名称。YourAppName.dll

管理 Nginx 进程

sudo systemctl stop nginx 
sudo systemctl start nginx
sudo systemctl restart nginx
sudo systemctl reload nginx
sudo systemctl disable nginx
sudo systemctl enable nginx

现在,您的 ASP.NET Core 应用程序应该在 Linux 上启动并运行,Nginx 将充当反向代理,将传入的 HTTP 请求转发到应用程序。您可以通过在 Web 浏览器中导航到服务器的域或 IP 地址来访问您的应用程序。

请注意,上述步骤是一般指南,您的具体设置可能会根据您的应用程序要求和服务器配置而有所不同。此外,还可以考虑使用 Docker 等工具进行容器化和更轻松的部署管理。

如果你喜欢我的文章,请给我一个赞!谢谢

相关推荐

Centos7虚拟机安装及网络配置(二)

#二、centos7的网络配置-Nat模式NAT模式也是VMware创建虚拟机的默认网络连接模式。使用NAT模式网络连接时,VMware会在主机上建立单独的专用网络,用以在主机和虚拟机之间相互通信。虚...

网络分析shell脚本(实时流量+连接统计)

介绍一个强大的分析网络的shell脚本,此脚本是从EZHTTP拆分出来的,觉得有必要单独介绍下。脚本运行效果截图:此脚本包含的功能有:1、实时监控任意网卡的流量2、统计10秒内平均流量3、统计每个端口...

Centos之Could not retrieve mirrorlist解决方案

Centos之Couldnotretrievemirrorlist解决方案:vi/etc/sysconfig/network-scripts/ifcfg-你的网卡名字修改:ONBOOT=ye...

一文掌握!VirtualBox 中 Rock9.x(Linux)网络配置全攻略

一、前言记得我有一篇文章《必看!VirtualBox中Centos7(Linux)网络配置全攻略》讲的非常明细,但是因为CentOS已经停止维护了,可能很多人都不想继续学CentOS,我也是一样,...

CentOS 6.0 设置IP地址、网关、DNS

在做任何操作之前先备份原文件,我们约定备份文件的名称为:源文件名称+bak,例如原文件名称为:centos.txt那么备份文件名称为:centos.txtbak引言:linux的网卡IP地址是存放在文...

Linux CentOS 基础操作(centos怎么操作)

简介:养成学习Linux的好习惯,第一是多查看manpage(manual)等帮助文档和利用好Tab键;第二是掌握好一些快捷键,比如ctrl+c(停止当前进程),ctrl+r(查看命令历史)...

Linux抓包王者技能!这条命令直接封神,教你精准定位网络问题

在网络故障排查和性能调优中,抓包是一项必不可少的技能。对于Linux环境下的网络工程师和运维人员来说,掌握高效抓包方法至关重要。而要说“抓包界的王炸”,那非tcpdump莫属!今天,我们不仅要介绍...

「干货」如何在 Linux 上划分VLAN?

在某些场景中,我们希望在Linux服务器(CentOS/RHEL)上的同一网卡分配来自不同VLAN的多个ip。这可以通过启用VLAN标记接口来实现,但要实现这一点,首先必须确保交换机上添加多个vl...

CentOS 8 网络配置实战教程:静态IP、路由与DNS设置

一、配置前准备1.查看当前网络信息#查看所有网络接口nmclidevicestatus#查看指定网卡信息(假设网卡名为ens192)ipaddrshowens192#查看路由...

Debian10.7修改网络配置(debian怎么配置网络)

简介:关于Debian获取IP地址的方法主要有两种,动态获取和静态设置。在配置网络之前先要知道Debian的网卡名称是什么,Debian可通过命令#ipa查看网卡名称。本文主要通过介绍Debian...

巧用SSH转发功能深入穿透内网(ssh转发udp)

ssh能够提供客户端到服务端的加密传输,当http、ftp等协议被防火墙所拦截时,可以考虑使用SSH的端口转发功能,将其它TCP端口的网络数据通过SSH连接来转发。转发方式一共有三种,分别是:动态转发...

CentOS Linux 7 的IP地址配置(centos7.4配置ip地址)

前段时间有位朋友,在一台PC机上安装了CentOSLinux7系统,因为要接入局域网,需要配置IP地址和默认网关信息。于是参照一本Linux教程上编辑网卡配置信息的方法,输入:vim/etc/s...

教你如何在 Linux 上划分VLAN(linux怎么分区详解)

在某些场景中,我们希望在Linux服务器(CentOS/RHEL)上的同一网卡分配来自不同VLAN的多个ip。这可以通过启用VLAN标记接口来实现,但要实现这一点,首先必须确保交换机上添加多个vl...

打通数据高速公路:如何在 CentOS 上使用 Thunderbolt 3 和 4

Thunderbolt3与4是现代高速外设连接的代表,带来了40Gbps的惊人带宽,支持数据、视频、音频与供电的“四合一”功能,尤其在专业视频编辑、科研计算、虚拟化扩展等领域具有巨大价值...

VMware 虚拟机 CentOS7 桥接模式静态 IP 配置全攻略

虚拟机桥接模式原理配置成桥接网络连接模式的虚拟机就当作主机所在以太网的一部分,虚拟系统和宿主机器的关系,就像连接在同一个Hub上的两台电脑,可以像主机一样可以访问以太网中的所有共享资源和网络连接,可以...

取消回复欢迎 发表评论: