找回密码
 会员注册
查看: 190|回复: 0

linux 布署Asp.net Core 6.0 应用 (宝塔面板)

[复制链接]

1389

主题

5

回帖

496万

积分

管理员

积分
4962988
发表于 2024-2-29 08:50:59 | 显示全部楼层 |阅读模式

云服采用阿里云的操作系统镜像

  • Alibaba Cloud Linux 3选择Linux kernel 5.10 LTS,同时默认搭载GCC 10.2、binutils 2.35、glibc 2.32等基础软件。

1。设置服务器远程连接密码,并远程连接服务器(浏览器连接即可)

2。注册登录宝塔,获取安装链接。注意不要选择在线安装,会有失败的几率

 

虽然 宝塔说明是只能安装于CentOs7.x。但实测在号称兼容CentOs8.x 的 Alibaba Cloud Linux下可以正常安装和使用。

安装成功出现以下内容,此时默认端口为8888,注意服务器的防火墙或者安全组,要做端口开放

 

 登录宝塔面板,用给定的用户名密码,绑定宝塔的账号。这个是自己在宝塔注册的账号密码

3。安装nginx第一次登录,会跳出安装推荐。可以根据需要安装。这里我只需要nginx,所以只安装nginx

 开始安装

 安装完毕 

 更改默认端口。宝塔面板左侧,面板设置

 

 

提交修改后,重新登录面板。注意,修改的端口要在服务器的防火墙(安全组)中放行

4。安装dotnet 运行时sdk。

  

更换端口后第一次登录终端,会要求重新输入密码,注意,此处密码是服务器的ssh密码,就是最开始重置的那一个

在终端中执行以下几个命令

sudo rpm -Uvh https://packages.microsoft.com/config/centos/8/packages-microsoft-prod.rpm。这一步很重要,没有这一步,下一步不给执行

sudo yum install aspnetcore-runtime-6.0,如果只是发布,这个就够了

sudo yum install dotnet-sdk-6.0

安装完成后查看一下dotnet位置

which dotnet

 

dotnet 6.0默认是装在这里的,/usr/bin这个路径已经在path中,所以我们不需要再添加

上传打包好的程序文件。宝塔面板支持目录上传

 

特别要注意文件夹名,centos大小写敏感

6。再次打开终端,新建service文件,dotnet发布在linux上的原理是,先由sdk将dll文件解析并运行,然后由nginx反向代理来访问。所以要将dotnet程序运行起来,并将它注册为系统的service。

运行 vim /etc/systemd/system/myweb.service

文件内容:

  1. [Unit]
  2. Description=MyWeb
  3. [Service]
  4. WorkingDirectory=/www/myWeb
  5. ExecStart=/usr/bin/dotnet /www/myweb/myweb.Web.dll --urls=http://localhost:3000
  6. Restart=always
  7. RestartSec=10
  8. SyslogIdentifier=myweb
  9. User=root
  10. Environment=ASPNETCORE_ENVIRONMENT=Production
  11. Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
  12. [Install]
  13. WantedBy=multi-user.target
复制代码

然后按ESC,然后输入:wq退出

注意:第一是大小写敏感,第二是dotnet 6.0安装时会默认路径,并且会将dotnet加入到/usr/bin,而这个路径已经加入到path,无需再添加了。

注意,ExecStart一行,/app/myweb/myweb.Web.dll换成你自己项目的dll文件

执行systemctl enable myweb.service

执行systemctl start myweb.service

执行systemctl status myweb.service,若看到绿色的active(running)字样说明服务正常启动了。

7。配置Nginx站点

 

 这里要注意,如果监听端口不是80,那么要在域名一栏里写上:xxx.com:xxxx(端口号),网站建立后,端口号无法修改。如果需要改,只能删除重建

添加站点后,点击设置

 可以将原本的内容删除掉。如果你对配置文件很熟悉,或者有特殊的东西要设置,也可以增加内容。这里我直接复制了MSDN上提供的模板

  1. server {
  2. listen 80;
  3. server_name localhost;//域名
  4. location / {
  5. proxy_pass http://127.0.0.1:3000; //自定义端口号,需要在云服安全组或防火墙中添加规则(放开)
  6. proxy_http_version 1.1;
  7. proxy_set_header Upgrade $http_upgrade;
  8. proxy_set_header Connection keep-alive;
  9. proxy_set_header Host $host;
  10. proxy_cache_bypass $http_upgrade;
  11. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  12. proxy_set_header X-Forwarded-Proto $scheme;
  13. }
  14. }
复制代码

存盘退出

 

执行nginx -s reload 以刷新设置

此时网站可以正常访问

我发布的程序是asp.net core api 。发布过程与发布网站相似,但发布完成后发现swagger无法访问,但api的功能是可以使用的。

这里要注意:

服务端口号与监听端口号要不同才可以,防火墙(安全组)放行的是监听端口号。

至此宝塔面板下dotnet6.0布署完成。

补充说明:非宝塔面板下,可以用dnf代替yum


来源:https://blog.csdn.net/yexuanbaby/article/details/123983146
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?会员注册

×
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2024-12-25 13:27 , Processed in 0.603731 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表