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

1.Ubuntu服务器环境安装

1.1 增加微软包安装源

bash 复制代码
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

bash 复制代码
# 更新本地软件包列表。原理:连接到软件服务器->检查可用更新->更新本地软件包列表
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

bash 复制代码
sudo apt-get update &&  sudo apt-get install -y aspnetcore-runtime-8.0

2.Ubuntu Web站点部署运行

2.1 发布包 上传到 /home/web

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

bash 复制代码
chmod +x -R  /home/web

2.3 创建Service文件

bash 复制代码
vim /usr/lib/systemd/system/mymvcweb.service

添加以下内容:

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

bash 复制代码
[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 添加执行权限

bash 复制代码
chmod +x /usr/lib/systemd/system/mymvcweb.service

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

bash 复制代码
systemctl daemon-reload && systemctl enable mymvcweb.service

2.6 查看状态

bash 复制代码
systemctl status mymvcweb.service

3. 访问部署好的站点

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

3.2 公网访问

4. 恭喜,Success

附录:

其它指令参照

bash 复制代码
# 启动服务
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
相关推荐
zhuà!3 分钟前
element的el-form提交校验没反应问题
前端·elementui
嵌入式×边缘AI:打怪升级日志17 分钟前
Linux 驱动实战:SR501 人体红外传感器驱动开发与调试全记录
linux·运维·驱动开发
龙猫里的小梅啊18 分钟前
CSS(一)CSS基础语法与样式引入
前端·css
小码哥_常20 分钟前
从0到1,开启Android音视频开发之旅
前端
渔舟小调23 分钟前
P19 | 前端加密通信层 pikachuNetwork.js 完整实现
开发语言·前端·javascript
正点原子25 分钟前
【正点原子Linux连载】第三章 U-Boot使用 摘自【正点原子】ATK-DLRK3568嵌入式Linux驱动开发指南
linux·运维·驱动开发
qq_120840937141 分钟前
Three.js 工程向:Draw Call 预算治理与渲染批处理实践
前端·javascript
Qbw200443 分钟前
【Linux】进程地址空间
linux·c++
jamon_tan2 小时前
linux下lvgl8.3动态库编译
linux
不会聊天真君6473 小时前
JavaScript基础语法(Web前端开发笔记第三期)
前端·javascript·笔记