0

有很多部分,所以我不希望任何人能够在没有看到每个配置的情况下回答这个问题。但也许人们可以告诉我如何寻找诊断或主要部分如何组合在一起,以便我能够理解我做错了什么。

我有一个运行 Ubuntu Server 的腾讯云服务器实例。

我还有一个指向该服务器 IP 地址的域名。

我启动一个 nginx 服务来监听 1337 端口并将请求传递给 example.com/parse

我在 docker 容器内运行 mongodb,监听端口 27017。

在 index.js 中,我将 databaseURI 设置为“mongodb://localhost:27017/dev”,将 SERVER_URL 设置为“https://example.com/parse”

当需要部署 Parse Server 实例时,我在当前 ssh 会话中使用 screen,运行 npm start,然后分离屏幕,然后通过关闭终端终止我的 ssh 会话。

最后,我使用 serverURL 'https://example.com/parse' 在本地计算机上运行解析仪表板

一切都很好。我通过 Parse Server repo 附带的测试页面将项目添加到数据库中。我通过 Python 的 cloudcode 调用将项目添加到数据库中。我通过仪表板添加和删除类和对象。这种行为完全符合我的预期。

它会以这种方式持续 12-72 小时。

但是正常运行几天后,我打开解析仪表板,一切都消失了。我可以再次开始添加东西,一切正常,但没有任何东西持续超过 72 小时。

有很多我不了解它的解剖结构,所以我想也许使用屏幕然后分离和关闭终端会导致某些进程被杀死,这是我的错误。但是当我跑到顶部时,我可以看到一切。我可以看到 npm start 正在运行。我可以看到 mongo 正在运行。当我 docker ps 检查容器时,它仍然在那里运行良好。nginx 服务仍在运行。

谁能建议我开始诊断问题所在的方法?我觉得这不是任何配置,因为如果这是问题所在,那么它就无法正常工作这么长时间。我觉得这一定是我部署它的方式导致某些东西重置或导致某些应该始终运行的进程死亡。

编辑:对于后代,我将总结以下内容作为解决方案,以防您来到这里遇到同样的问题。@Joe 将我指向 db.setProfilingLevel(),级别 2,使用 slowms=0 选项以获得最大详细度。这些日志将写入 mongodb.conf 中指示的文件。默认情况下,Docker 不会持久化存储,因此您应该有一个命名卷。语法是 $docker volume create <volume_name>。创建容器时附加卷的语法是添加 av 标志,如 -v <volume_name>:。最后,我在容器中运行 mongodb,因为这是我在教程中看到的工作流程。但它解决了一个我没有的问题,并且在没有容器的情况下将 mongodb 作为服务启动更简单。

4

0 回答 0