【问题标题】:mod_wsgi-express randomly restarting/crashingmod_wsgi-express 随机重启/崩溃
【发布时间】:2015-05-28 06:11:27
【问题描述】:

我正在使用 mod_wsgi-express 在 CentOS 6 服务器上提供一个简单的 Flask 应用程序。该应用目前使用频率很低。

我遇到了一个问题,即每隔几天,应用就会崩溃,出现 500 个错误或根本没有响应。这似乎与加载或使用无关。

查看错误日志,我偶尔会看到“[notice] 捕获 SIGTERM,正在关闭”消息,之后它会显示 mod_wsgi-express 重新启动。我不知道为什么会这样。

我也收到了这条消息:

[error] (2)No such file or directory: mod_wsgi (pid=24550, process='localhost:8080', application=''): call to fopen() failed ff 或'/tmp/mod_wsgi-localhost:8080:14699/handler.wsgi'。

我尝试在启用 gdb 和 pdb 调试器的情况下运行 mod_wsgi-express,但没有发现与 Python 脚本的实际执行相关的任何错误。

我也有一个

[info] [client 137.78.237.31] (104)Connection reset by peer: core_output_filter: 向网络写入数据

这开始了数百个

[notice] child pid 15952 exit signal Segmentation fault (11)

在几天内。

这些消息似乎都是随机发生的,彼此独立。 唯一一致的是 SIGTERM 信号经常发生。

我对发生了什么感到困惑。实现看起来很简单——它是一个简单的工具,可以验证上传文件中的元数据。

【问题讨论】:

  • 在使用gdb模式时,是否也提供--debug-mode? gdb 模式仅在调试模式下工作,并且怀疑您不会在长时间运行的实例中这样做,因为它将其限制为单进程和单线程以允许调试。

标签: python flask mod-wsgi


【解决方案1】:

对于 500 错误,请使用 --server-root 选项为其工作目录指定一个默认的 /tmp 以外的目录。

默认值应仅用于短期运行,--server-root 用于指定更永久的住所(如果运行较长时间)。

这是必要的,因为某些操作系统可以设置为在一段时间内未修改文件时从 /tmp 中删除文件。我一直在考虑在启动输出中添加一个警告,专门建议使用 --server-root 如果依赖默认值。

对于分段错误问题,请通过 mod_wsgi 邮件列表进一步讨论。 StackOverflow 不是一个讨论论坛,该问题可能需要更多调查和讨论才能了解您的应用程序在做什么。


更新 1

继续讨论:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-10
    • 1970-01-01
    • 2014-10-17
    • 2013-08-23
    • 2013-04-21
    • 2011-08-13
    相关资源
    最近更新 更多