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
相关推荐
C++忠实粉丝7 分钟前
计算机网络socket编程(3)_UDP网络编程实现简单聊天室
linux·网络·c++·网络协议·计算机网络·udp
brief of gali8 分钟前
记录一个奇怪的前端布局现象
前端
淡水猫.13 分钟前
Fakelocation Server服务器/专业版 ubuntu
运维·服务器·ubuntu
量子网络25 分钟前
debian 如何进入root
linux·服务器·debian
我们的五年33 分钟前
【Linux课程学习】:进程描述---PCB(Process Control Block)
linux·运维·c++
Json_181790144801 小时前
电商拍立淘按图搜索API接口系列,文档说明参考
前端·数据库
我言秋日胜春朝★1 小时前
【Linux】进程地址空间
linux·运维·服务器
风尚云网1 小时前
风尚云网前端学习:一个简易前端新手友好的HTML5页面布局与样式设计
前端·css·学习·html·html5·风尚云网
木子02042 小时前
前端VUE项目启动方式
前端·javascript·vue.js
GISer_Jing2 小时前
React核心功能详解(一)
前端·react.js·前端框架