Linux服务器上的Umbro 9(Kestrel服务)-部署代码更改后站点死亡 [英] Umbraco 9 on Linux Server (Kestrel Service)- Site Dies After Deploying Code Changes

查看:0
本文介绍了Linux服务器上的Umbro 9(Kestrel服务)-部署代码更改后站点死亡的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经在一台Linux服务器(Ubuntu 20.04)上安装并运行了一个Umbraco 9.0.1实例。我使用的似乎是推荐的方法,将Nginx用作Kestrel服务的反向代理

https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-nginx?view=aspnetcore-5.0

我遇到的问题是,每当我进行代码更新并将其部署到我的Linux服务器上,然后重启kestrel服务时,站点都会死掉。我收到502错误的网关。重新加载守护进程不起任何作用。我发现唯一有效的方法是导航到部署了已发布应用程序的文件系统中的位置并运行命令:

DotNet Umbro.Nine.Linux.dll(Umbraco.Nine.Linux是我的项目名称,相应的DLL是发布结果)

该命令挂起,所以我按了ctrl+C来停止它,但这会使站点重新启动。

还有谁经历过这样的事情吗?如果不是,您是如何处理将Umbro代码部署到Linux服务器的?我应该补充的是,如果我使用来自Visual Studio的默认.NET核心网站,我就不会有这个问题。我部署了我的代码并重新启动了kestrel服务,一切都很美好,没有站点中断,更改显示出来。那么,也许是Umbro的启动过程让一切都消亡了?

我已经检查了kestrel服务的日志,它们只是指示服务如预期那样停止/重新启动。Nginx里的日志把我搞糊涂了。他们说的是

2021/09/27 15:35:08 [error] 81048#81048: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 184.67.248.194, server: <mysite.com>, request: "GET /umbraco/api/test/another HTTP/1.1", upstream: "http://127.0.0.1:2003/umbraco/api/test/another", ..."

编辑: 我想我应该发布一些额外的细节,以防万一。对于项目的发布,我使用内置的Visual Studio发布并选择文件系统。

(注意,我已经尝试了单个文件发布,但我甚至还没有运行它。我收到一个错误,指出项目所依赖的某些库将不会在单个文件发布中运行。同样,这似乎是Umbro特有的,因为我可以获得一个默认的ASP.NET核心站点来发布,就像这样。我只是添加这个注释,以防它与Umbraco 9的某些问题有关,因为我们还处于发布的早期阶段。)

之后,我只需将其压缩,上传到服务器,然后使用以下命令解压缩:

unzip -o website.zip -d <path/to/my/web/app/>

然后

sudo systemctl restart <my.kestrel.service>

当浏览站点时,会出现我在上面描述的502 Bad Gateway。如果您能对我做错了什么提供任何帮助,我将不胜感激。

推荐答案

所以,我差不多解决了这个问题。我已经放弃了整个kestrel的事情,我正在使用停靠容器来运行ASP.NET核心应用程序。我仍在使用nginx作为反向代理进行托管。唯一的不同之处在于,不是让一个系统kestrel服务监听指定的端口,而是一个停靠容器在监听它。

我在这里发布了详细信息:https://our.umbraco.com/forum/umbraco-9/107189-umbraco-nine-on-linux-server-site-dies-after-deploying-code-changes

希望它能帮助其他人!

我非常兴奋,因为整个过程都是可以‘编写脚本’的,所以我设法在AWS CodePipeline中实现了自动化。

这篇关于Linux服务器上的Umbro 9(Kestrel服务)-部署代码更改后站点死亡的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆