当前位置: 首页 > news >正文

Ubuntu 20.04 部署 NET8 Web - Systemd 的方式 达到外网访问的目的

1.Ubuntu服务器环境安装

1.1 增加微软包安装源

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

1.2 Install the .NET SDK

# 更新本地软件包列表。原理:连接到软件服务器->检查可用更新->更新本地软件包列表
sudo apt-get update
# 安装 https 所依赖的包
sudo apt-get install apt-transport-https# 安装.net sdk
sudo apt-get update
sudo apt-get install -y dotnet-sdk-8.0# 查看dotnet 版本
sudo dotnet --version
sudo dotnet --info

1.3 Install Runtime

sudo apt-get update &&  sudo apt-get install -y aspnetcore-runtime-8.0

2.Ubuntu Web站点部署运行

2.1 发布包 上传到 /home/web

在这里插入图片描述

2.2 给 /home/web 添加执行权限

chmod +x -R  /home/web

2.3 创建Service文件

vim /usr/lib/systemd/system/mymvcweb.service

添加以下内容:
注意:这里我特意配置了 8801端口,最后要开放外网访问,不配置最终就走的 dotnet 默认的 5000端口

[Unit]
Description=MyMvcWeb WebSite Application[Service]
WorkingDirectory=/home/web/
ExecStart=/usr/bin/dotnet /home/web/MyMvcWeb.dll --urls "http://*:8801"
Restart=always
# Restart service after 2 seconds if the dotnet service crashes:
RestartSec=2
KillSignal=SIGINT
SyslogIdentifier=mymvcweb
User=root
Environment=ASPNETCORE_ENVIRONMENT=Production[Install]
WantedBy=multi-user.target

2.4 给 service 添加执行权限

chmod +x /usr/lib/systemd/system/mymvcweb.service

2.5 重新加载和启用开机自启

systemctl daemon-reload && systemctl enable mymvcweb.service

2.6 查看状态

systemctl status mymvcweb.service

在这里插入图片描述

3. 访问部署好的站点

3.1 服务器上访问 curl http://127.0.0.1:8801

在这里插入图片描述

3.2 公网访问

在这里插入图片描述

4. 恭喜,Success

附录:

其它指令参照

# 启动服务
systemctl daemon-reload && systemctl start mymvcweb.service
# 停止服务
systemctl daemon-reload && systemctl stop mymvcweb.service
# 重启服务
systemctl daemon-reload && systemctl restart mymvcweb.service# 查看进程
ps -ef | grep mymvcweb
# 查看端口是否开放
netstat -tuln

在这里插入图片描述

相关文章:

Ubuntu 20.04 部署 NET8 Web - Systemd 的方式 达到外网访问的目的

1.Ubuntu服务器环境安装 1.1 增加微软包安装源 wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb1.2 Install the .NET SDK # 更新本地软件包列表。原理&am…...

线程池(ThreadPool):使用ExecutorService、ThreadPoolExecutor等线程池管理并发任务以及底层实现原理

线程池(ThreadPool)是一种通过预先创建和维护一组线程的机制,用来高效管理并发任务。线程池不仅能减少创建和销毁线程的开销,还能更好地控制并发任务的执行。Java 中提供了多种方式来管理线程池,其中包括 ExecutorServ…...

人力资源数据集分析(二)_随机森林与逻辑回归

数据入口:人力资源分析数据集 - Heywhale.com 数据说明 字段说明EmpID唯一的员工IDAge年龄AgeGroup年龄组Attrition是否离职BusinessTravel出差:很少、频繁、不出差DailyRate日薪Department任职部门:研发部门、销售部门、人力资源部门Dista…...

【30天玩转python】数据库操作

数据库操作 数据库是应用程序中用于存储和管理数据的核心组件。Python 提供了多种与数据库交互的方式,支持不同类型的数据库,包括关系型数据库(如 MySQL、PostgreSQL)和 NoSQL 数据库(如 MongoDB)。在这篇…...

PTT:Point Tree Transformer for Point Cloud Registration 论文解读

目录 一、导言 二、相关工作 1、基于Transformer的点云配准 2、针对点云的局部注意力 三、PTT 1、KPconv提取特征 2、Tree Transformer Encoder 3、Decoder 4、估计姿态 5、损失函数 四、实验 1、对比不同Backbone 2、运行时间对比 3、对比不同PTT方法下RR指标的…...

C++速通LeetCode中等第7题-和为K的子数组(巧用前缀和)

巧用哈希表与前缀和&#xff0c;前缀和差为k的两个序号之间的数组就是满足条件的子数组&#xff0c;用哈希表来存放每个序号的前缀和。 前缀和就是头元素到当前序号子数组元素的和 class Solution { public:int subarraySum(vector<int>& nums, int k) {unordered_…...

【读书笔记-《30天自制操作系统》-23】Day24

本篇内容依然比较简单&#xff0c;主要是优化窗口功能以及开发定时器应用程序。首先是优化窗口的切换功能&#xff0c;实现通过键盘和鼠标切换窗口&#xff0c;然后是实现通过鼠标关闭窗口。接着实现不同窗口输入状态的切换&#xff0c;最后是实现定时器的API与应用程序。 1.…...

XML:DOM4j解析XML

XML简介&#xff1a; 什么是XML&#xff1a;XML 是独立于软件和硬件的信息传输工具。 XML 的设计宗旨是传输数据&#xff0c;而不是显示数据。XML 标签没有被预定义。您需要自行定义标签。XML不会做任何事情&#xff0c;XML被设计用来结构化、存储以及传输信息。 XML可以发明…...

15.5 创建监控控制平面的service

本节重点介绍 : k8s中service的作用和类型创建k8s控制平面的service 给prometheus采集用&#xff0c; 类型clusterIp kube-schedulerkube-controller-managerkube-etcd service的作用 Kubernetes Service定义了这样一种抽象&#xff1a; Service是一种可以访问 Pod逻辑分组…...

【Docker Nexus3】maven 私库

1.部署环境 window 11 x64Docker Desktop 4.34.1 (166053) Docker Engine v27.2.0 1.1.Docker 镜像源 1.1.1.Docker Engine 配置 {"builder": {"features": {"buildkit": true},"gc": {"defaultKeepStorage": "32…...

Docker本地部署Chatbot Ollama搭建AI聊天机器人并实现远程交互

文章目录 前言1. 拉取相关的Docker镜像2. 运行Ollama 镜像3. 运行Chatbot Ollama镜像4. 本地访问5. 群晖安装Cpolar6. 配置公网地址7. 公网访问8. 固定公网地址 前言 本文主要分享如何在群晖NAS本地部署并运行一个基于大语言模型Llama 2的个人本地聊天机器人并结合内网穿透工具…...

MySQL:用户管理

添加用户 create user usernamelocalhost identified by user_password;删除用户 drop user usernamelocalhost;查看所有用户 输入格式 select user,host from mysql.user; 输出 mysql> select user,host from mysql.user; ----------------------------- | user …...

论文《Mixture of Weak Strong Experts on Graphs》笔记

【Mowst 2024 ICLR】论文提出了一种新的图神经网络架构&#xff0c;称为Mixture of weak and strong experts&#xff08;Mowst&#xff09;&#xff0c;通过将轻量级的多层感知机&#xff08;MLP&#xff09;作为弱专家和现成的GNN作为强专家相结合&#xff0c;以处理图中的节…...

【诉讼流程-健身房-违约-私教课-诉讼书提交流程-民事诉讼-自我学习-铺平通往法律的阶梯-讲解(3)】

【诉讼流程-健身房-违约-私教课-诉讼书提交流程-民事诉讼-自我学习-铺平通往法律的阶梯-讲解&#xff08;3&#xff09;】 1、前言说明2、流程说明3、现场提交&#xff08;线下&#xff09;4、网上提交1-起诉书样例2-起诉书编写&#xff08;1&#xff09;原告信息&#xff1a;&…...

数据结构(Day14)

一、学习内容 结构体 概念 引入&#xff1a;定义整数赋值为10 int a10; 定义小数赋值为3.14 float b3.14; 定义5个整数并赋值 int arr[5] {1 , 2 , 3 , 4 ,5}; 定义一个学生并赋值学号姓名成绩 定义一个雪糕并赋值名称产地单价 问题&#xff1a;没有学生、雪糕 数据类型 解决&…...

Paragon NTFS for Mac和Tuxera NTFS for Mac,那么两种工具有什么区别呢?

我们在使用Mac系统读取U盘的过程中往往会遇到一个问题&#xff0c;那就是U盘插进电脑无法显示&#xff0c;或者只能读取不能编辑。出现这种情况的原因就一般是格式错误。 很多小伙伴在解决这种问题的时候会选择使用U盘读写工具&#xff0c;那么哪一种读写工具比较好呢&#xf…...

HashTable结构体数组实现

写了个哈希表&#xff0c;底层逻辑基于结构体数组&#xff0c;核心结构:HashNode,结构外壳:HashTable_R,冲突处理以后会加的(QwQ)~ 目前代码&#xff1a; #ifndef PYIC_X #define PYIC_Xunsigned int PYIC_Hash(unsigned int Val, unsigned int Mov) {unsigned int Ht[4] { …...

Python 管理 AWS ElastiCache 告警

在 AWS 环境中,监控和管理 ElastiCache 集群的性能是至关重要的。本文将介绍如何使用 Python 和 AWS SDK (boto3) 来自动创建和删除 ElastiCache 集群的 CloudWatch 告警。我们将分两部分来讨论:创建告警和删除告警。 第一部分:创建 ElastiCache 告警 首先,让我们看看如何…...

【无人机设计与控制】四旋翼无人机俯仰姿态保持模糊PID控制(带说明报告)

摘要 为了克服常规PID控制方法在无人机俯仰姿态控制中的不足&#xff0c;本研究设计了一种基于模糊自适应PID控制的控制律。通过引入模糊控制器&#xff0c;实现了对输入输出论域的优化选择&#xff0c;同时解决了模糊规则数量与控制精度之间的矛盾。仿真结果表明&#xff0c;…...

[数据集][目标检测]不同颜色的安全帽检测数据集VOC+YOLO格式7574张5类别

重要说明&#xff1a;数据集里面有2/3是增强数据集&#xff0c;请仔细查看图片预览&#xff0c;确认符合要求在下载&#xff0c;分辨率均为640x640 数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件…...

忍者像素绘卷开源镜像部署:支持国产昇腾芯片的适配可行性分析

忍者像素绘卷开源镜像部署&#xff1a;支持国产昇腾芯片的适配可行性分析 1. 项目概述与技术特点 忍者像素绘卷是一款基于Z-Image-Turbo深度优化的图像生成工作站&#xff0c;专为二次元风格和复古像素艺术设计。该项目融合了现代AI图像生成技术与16-bit游戏美学&#xff0c;…...

AST 是什么?费曼 + 大白话 + 画图,30 秒彻底懂

我用最简单、最形象、最不绕弯的方式给你讲清楚&#xff0c;保证你马上能听懂&#x1f447;一、AST 代码的骨架结构图全称&#xff1a;Abstract Syntax Tree 抽象语法树一句话&#xff1a;AST 就是把代码拆成逻辑结构&#xff0c;去掉所有标点、空格、格式&#xff0c;只保留 …...

Linux中以其它用户身份执行脚本或命令的全总结

Linux中以其他用户身份执行命令或脚本是一个常见的需求,最近工作中碰到了这个需求,在这里简单总结一下.假如我们在root用户下想以其它用户(例如oracle,mysql)身份执行一些脚本或命令,那么有哪一些方法呢?su命令(switch user)su命令的使用方式有两种, 如下所示:切换用户只执行一…...

ChatGLM3-6B-128K vs ChatGLM3-6B:Ollama环境下的8K/128K场景选型指南

ChatGLM3-6B-128K vs ChatGLM3-6B&#xff1a;Ollama环境下的8K/128K场景选型指南 1. 两种模型的核心差异 ChatGLM3-6B和ChatGLM3-6B-128K都是基于ChatGLM3系列的开源对话模型&#xff0c;但它们在处理长文本能力上有着本质区别。 ChatGLM3-6B是标准版本&#xff0c;支持最多…...

Frappe-Gantt 甘特图进阶实战:从核心功能到企业级定制

1. Frappe-Gantt 甘特图在企业级项目中的核心价值 第一次接触Frappe-Gantt是在去年一个跨部门协作的电商大促项目中。当时我们需要一个能直观展示各环节时间节点的工具&#xff0c;试过几个商业软件后&#xff0c;最终选择了这个开源的轻量级解决方案。它最吸引我的地方在于——…...

仅限首批内测开发者获取:CPython无GIL预编译二进制+无锁标准库API速查表(含ABI兼容性矩阵与降级熔断方案)

第一章&#xff1a;Python无锁GIL环境下的并发模型概览Python 的全局解释器锁&#xff08;GIL&#xff09;长期被视为多线程 CPU 密集型任务的瓶颈。然而&#xff0c;随着 CPython 3.13 的正式引入“实验性无锁 GIL”&#xff08;--without-pymalloc 配合 --with-gildisabled 构…...

数据转换器(ADC/DAC)核心术语与工程实践解析

1. 数据转换器基础概念解析在电子工程领域&#xff0c;数据转换器&#xff08;ADC/DAC&#xff09;是连接模拟世界与数字系统的关键桥梁。作为一名从业十余年的硬件工程师&#xff0c;我经常遇到新手对这些专业术语感到困惑的情况。本文将系统梳理56个核心术语&#xff0c;结合…...

C语言转译LDPC码:试用比特翻转算法逼近香农极限

作者&#xff1a;绳匠_ZZ0为什么我要学LDPC&#xff1f;前几篇文章中&#xff0c;我已经实现了卷积码&#xff08;Viterbi译码&#xff09;和RS卷积级联码&#xff0c;它们在低信噪比下表现不错。但学长和我提到&#xff1a;Turbo码和LDPC码能够逼近香农极限&#xff0c;在相同…...

从UDP到串口:ROS与STM32无线通信方案的实战选型与优化

1. 为什么需要无线通信方案 在机器人开发中&#xff0c;上位机&#xff08;通常是运行ROS的PC或开发板&#xff09;与下位机&#xff08;如STM32等单片机&#xff09;的通信是基础但关键的一环。我最近在做一个小车项目时&#xff0c;就深刻体会到了通信方案选型的重要性。最初…...

效率革命:跳过java安装与配置,用快马平台秒级验证算法性能

效率革命&#xff1a;跳过Java安装与配置&#xff0c;用快马平台秒级验证算法性能 最近在优化一个数据处理模块时&#xff0c;我需要快速验证几种排序算法的性能差异。按照传统开发流程&#xff0c;至少要经历以下步骤&#xff1a; 下载并安装JDK&#xff0c;配置环境变量选择…...