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

Linux(Debian)下部署.NET Core网站的正确姿势

nanshan 2024-12-20 17:44 32 浏览 0 评论


嘿,各位开发者朋友们,今天咱们来聊聊在Linux(Debian)系统下如何部署.NET Core网站。如果你正打算把你的.NET Core应用迁移到Linux服务器上,或者想要尝试跨平台部署,那么这篇文章绝对是你的不二之选。咱们将以通俗易懂的方式,一步步带你完成部署过程。

一、准备工作

在开始之前,你需要确保以下几点:

  1. Debian服务器:一台运行Debian系统的服务器,可以是物理机,也可以是虚拟机。
  2. .NET Core应用:一个已经开发完成并打包好的.NET Core应用,通常是一个发布版本的文件夹。
  3. SSH访问:确保你能够通过SSH访问你的Debian服务器。

二、安装.NET Core环境

首先,你需要在Debian服务器上安装.NET Core环境。以下是具体步骤:

  1. 注册Microsoft签名密钥:打开你的SSH终端,执行以下命令来下载并注册Microsoft的签名密钥。

    wget https://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb

    注意:这里的Debian版本是11,如果你使用的是其他版本,请替换为相应的版本号。

  2. 更新包列表并安装.NET Core SDK:接下来,更新你的包列表,并安装.NET Core SDK。这里以.NET 8为例。

    sudo apt-get update
    sudo apt-get install -y dotnet-sdk-8.0
  3. 验证安装:安装完成后,你可以通过以下命令来验证.NET Core环境是否安装成功。

    dotnet --info

三、配置防火墙

为了确保你的应用能够正常访问,你还需要配置防火墙。以下是具体步骤:

  1. 安装防火墙:如果你的Debian服务器还没有安装防火墙,你可以通过以下命令来安装ufw

    sudo apt install ufw
  2. 开放端口:假设你的.NET Core应用将运行在5000端口(这是默认的Kestrel服务器端口),你需要开放这个端口。

    sudo ufw allow 5000/tcp
  3. 启用防火墙:最后,启用防火墙以应用配置。

    sudo ufw enable
    sudo systemctl start ufw

四、上传并解压应用

接下来,你需要将你的.NET Core应用上传到Debian服务器,并解压到指定目录。

  1. 上传应用:你可以使用scprsync或任何你喜欢的文件传输工具来上传你的应用。这里假设你已经将应用打包为publish.zip并上传到了服务器的/usr/目录下。

  2. 解压应用:使用以下命令来解压你的应用。

    sudo apt install -y zip # 如果还没有安装zip工具
    sudo unzip publish.zip -d /usr/share/myapp # 假设解压到/usr/share/myapp目录
    sudo rm publish.zip # 删除压缩包(可选)

五、运行应用

现在,你已经准备好运行你的.NET Core应用了。以下是具体步骤:

  1. 导航到应用目录:使用cd命令导航到你的应用解压后的目录。

    cd /usr/share/myapp
  2. 运行应用:使用dotnet命令来运行你的应用。这里假设你的主程序DLL名为MyApp.dll

    sudo dotnet MyApp.dll --urls=http://*:5000

    这条命令会启动Kestrel服务器,并监听所有IP地址的5000端口。

六、守护进程(可选)

为了让你的应用在后台运行,即使你关闭了SSH终端也不会停止,你可以使用systemd来创建一个守护进程。

  1. 创建systemd服务文件:在/etc/systemd/system/目录下创建一个新的服务文件,例如myapp.service

    sudo nano /etc/systemd/system/myapp.service
  2. 编辑服务文件:在文件中添加以下内容(根据你的应用实际情况进行调整)。

    [Unit]
    Description=My .NET Core App

    [Service]
    WorkingDirectory=/usr/share/myapp
    ExecStart=/usr/bin/dotnet /usr/share/myapp/MyApp.dll --urls=http://*:5000
    Restart=always
    # Restart service after 10 seconds if the dotnet service crashes
    RestartSec=10
    SyslogIdentifier=myapp
    Environment=ASPNETCORE_ENVIRONMENT=Production
    Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

    [Install]
    WantedBy=multi-user.target
  3. 重新加载systemd配置:保存并关闭文件后,重新加载systemd配置。

    sudo systemctl daemon-reload
  4. 启动并启用服务:最后,启动你的服务,并设置它在系统启动时自动启动。

    sudo systemctl start myapp.service
    sudo systemctl enable myapp.service
  5. 检查服务状态:你可以使用以下命令来检查你的服务状态。

    sudo systemctl status myapp.service

七、访问你的应用

现在,你已经成功在Debian服务器上部署了你的.NET Core应用。你可以通过访问你的服务器IP地址和端口号(例如http://your_server_ip:5000)来查看你的应用是否正常运行。

结语

好了,以上就是Linux(Debian)下部署.NET Core网站的正确姿势。希望这篇文章能够帮到你,让你的部署过程更加顺利。如果你有任何问题或建议,欢迎在评论区留言交流。祝你部署成功!

相关推荐

Let’s Encrypt免费搭建HTTPS网站

HTTPS(全称:HyperTextTransferProtocoloverSecureSocketLayer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入...

使用Nginx配置TCP负载均衡(nginx tcp负载)

假设Kubernetes集群已经配置好,我们将基于CentOS为Nginx创建一个虚拟机。以下是实验种设置的详细信息:Nginx(CenOS8Minimal)-192.168.1.50Kube...

Nginx负载均衡及支持HTTPS与申请免费SSL证书

背景有两台minio文件服务器已做好集群配置,一台是192.168.56.41:9000;另一台是192.168.56.42:9000。应用程序通过Nginx负载均衡调用这两台minio服务,减轻单点...

HTTPS配置实战(https配置文件)

原因现在网站使用HTTPS是规范操作之一,前些日子买了腾讯云服务,同时申请了域名http://www.asap2me.top/,目前该域名只支持HTTP,想升级为HTTPS。关于HTTPS的链接过程大...

只有IP地址没有域名实现HTTPS访问方法

一般来说,要实现HTTPS,得有个注册好的域名才行。但有时候呢,咱只有服务器的IP地址,没注册域名,这种特殊情况下,也能照样实现HTTPS安全访问,按下面这些步骤来就行:第一步,先确认公网...

超详解:HTTPS及配置Django+HTTPS开发环境

众所周知HTTP协议是以TCP协议为基石诞生的一个用于传输Web内容的一个网络协议,在“网络分层模型”中属于“应用层协议”的一种。在这里我们并不研究该协议标准本身,而是从安全角度去探究使用该协议传输数...

Godaddy购买SSL之后Nginx配置流程以及各种错误的解决

完整流程:参考地址:https://sg.godaddy.com/zh/help/nginx-generate-csrs-certificate-signing-requests-3601生成NGI...

Nginx从安装到高可用,一篇搞定(nginx安装与配置详解)

一、Nginx安装1、去官网http://nginx.org/下载对应的nginx包,推荐使用稳定版本2、上传nginx到linux系统3、安装依赖环境(1)安装gcc环境yuminstallgc...

阿里云免费证书申请,配置安装,使用tomcat,支持http/https访问

参数说明商品类型默认已选择云盾证书服务(无需修改)。云盾证书服务类型SSL证书服务的类型。默认已选择云盾SSL证书(无需修改),表示付费版SSL证书。如果您需要免费领取或付费扩容DV单域名证书【免费试...

你试过两步实现Nginx的规范配置吗?极速生成Nginx配置小工具

NGINX是一款轻量级的Web服务器,最强大的功能之一是能够有效地提供HTML和媒体文件等静态内容。NGINX使用异步事件驱动模型,在负载下提供可预测的性能。是当下最受欢迎的高性能的Web...

从零开始搭建HTTPS服务(搭建https网站)

搭建HTTPS服务的最初目的是为了开发微信小程序,因为wx.request只允许发起HTTPS请求,并且还必须和指定的域名进行网络通信。要从零开始搭建一个HTTPS的服务需要下面4...

群晖NAS使用官网域名和自己的域名配置SSL实现HTTPS访问

安全第一步,群晖NAS使用官网域名和自己的域名配置SSL实现HTTPS访问【新手导向】NAS本质还是一个可以随时随地访问的个人数据存储中心,我们在外网访问的时候,特别是在公网IP下,其实会面临着很多安...

让网站快速升级HTTPS协议提高安全性

为什么用HTTPS网络安全越来越受到重视,很多互联网服务网站,都已经升级改造为https协议。https协议下数据包是ssl/tcl加密的,而http包是明文传输。如果请求一旦被拦截,数据就会泄露产生...

用Https方式访问Harbor-1.9版本(https访问流程)

我上周在头条号写过一篇原创文章《Docker-Harbor&Docker-kitematic史上最详细双系统配置手册》,这篇算是它的姊妹篇吧。这篇文章也将用到我在头条写的另一篇原创文章的...

如何启用 HTTPS 并配置免费的 SSL 证书

在Linux服务器上启用HTTPS并配置免费的SSL证书(以Let'sEncrypt为例)可以通过以下步骤完成:---###**一、准备工作**1.**确保域名已解析**...

取消回复欢迎 发表评论: