当前位置:   article > 正文

在Linux上使用Nginx部署ASP.NET Core应用_linux部署netcore

linux部署netcore

Linux上使用Nginx部署ASP.NET Core应用

本篇文章参考微软官方文章使用 Nginx 在 Linux 上托管 ASP.NET Core

准备环境

  • Linux版本Ubuntu22.04
  • .Net运行时.NetRutime8.0
  • 代理服务器Nginx1.18.0

安装.Net

# 运行时
sudo apt-get update && \
sudo apt-get install -y dotnet-runtime-8.0 

# Sdk
sudo apt install dotnet-sdk-8.0
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

安装sdk时可能会出现找不到包的情况,这时使用官方的安装脚本即可

# 下载脚本
wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh

# 修改脚本权限
chmod +x ./dotnet-install.sh

# 安装最新版本,若需要LTS删除--version latest
./dotnet-install.sh --version latest

#runtime也可以用脚本安装
./dotnet-install.sh --version latest --runtime aspnetcore
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
# 查看dotnet版本
dotnet --info
  • 1
  • 2

在这里插入图片描述

部署Asp.Net项目

本地运行OK后发布上传到服务器,这里我使用的时XFtp,和XShell一套挺好用的;

测试应用:

注意:当NETCORE的版本低于3.0时,对应的命令为
dotnet web.dll --server.urls="http://localhost:7102"
当NETCORE高于等于3.0版本时
--urls "http://localhost:7102"

# Linux进入文件目录运行应用
dotnet RazorPageDemo.dll --urls "http://localhost:7102"
  • 1
  • 2

在这里插入图片描述

配置nginx

nginx默认的配置路径/etc/nginx/conf.d
新建文件rdemo.conf并添加内容

server{
 listen 7102;
 server_name *.exmple.com;
 location /{
  proxy_pass  http://127.0.0.1:7202/;
 }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

重新加载nginx配置文件nginx -s reload

访问页面
在这里插入图片描述

启动后台守护程序

ctrl+c停止程序运行
创建服务定义文件:

sudo nano /etc/systemd/system/kestrel-rdemo.service
  • 1

以下示例是应用的一个 .ini 服务文件:

[Unit]
Description=Example .NET Web API App running on Linux

[Service]
WorkingDirectory=/var/www/razorpagedemo
ExecStart=/usr/bin/dotnet /var/www/razorpagedemo/RazorPageDemo.dll --urls "http://localhost:7202"
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=razorpagedemo
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_NOLOGO=false

[Install]
WantedBy=multi-user.target
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
#启动服务
sudo systemctl enable kestrel-rdemo.service
#运行
sudo systemctl start kestrel-rdemo.service
#查看状态
sudo systemctl status kestrel-rdemo.service
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

OK,访问没问题就可以了,云服务器的话记得打开端口

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/897202
推荐阅读
相关标签
  

闽ICP备14008679号