【问题标题】:Zend Framework application times out with strange messageZend Framework 应用程序超时并显示奇怪消息
【发布时间】:2010-12-02 18:35:25
【问题描述】:

我希望有人能帮我弄清楚为什么我的应用程序总是超时。 它是使用 Zend 框架构建的。 我正在尝试运行一个需要几分钟才能完成的脚本。 它在我的本地机器(MAMP)上运行良好,但在产品服务器(Ubuntu)上超时。 两台服务器上的相关 php.ini 设置是: max_execution_time = 600 最大输入时间 = 600 memory_limit = 512M post_max_size = 8M

它应该在超时前运行 10 分钟,对吗? 在 Ubuntu 服务器上,它只会运行 1-2 分钟,然后超时并在浏览器中间打印以下消息:

"后端服务器没有及时响应。 应用服务器太忙,无法及时处理请求。”

很确定这是一条 Zend 消息,但我在互联网上找不到任何关于它的信息。

非常感谢您的帮助。

【问题讨论】:

标签: apache zend-framework timeout php


【解决方案1】:

该消息看起来像是来自 mod_fastcgi。

当您在 FastCGI 下运行 PHP(或在 FastCGI 下运行任何程序)时,PHP 脚本是一个独立于 Web 服务器的实体。您已将 PHP 进程配置为最多运行 10 分钟,但 Apache/mod_fastcgi 配置为仅等待较短的时间让您的 PHP 脚本开始返回数据。

这个想法是将 apache 进程与进入杂草永远不会返回的外部进程隔离开来(最终,apache 会耗尽侦听器)

如果您有权访问 httpd.conf 的 FastCGI 配置部分,请查看 -appConnTimeout 或 -idle-timeout 的值。

不幸的是(或者幸运的是,如果您是某个托管公司的系统管理员),您无法通过 .htaccess 甚至每个虚拟主机覆盖这些设置。至少,不是根据documentation

【讨论】:

  • 感谢您的回复。 mod_fastcgi 虽然没有安装在服务器上。很确定它来自scalr。我已经让系统管理员调查了。
  • 如果不是fastcgi,那又怎样? apache 是如何与 PHP 对话的?鉴于该错误消息,我会很惊讶听到您正在运行 vanilla mod_php
  • nginx 在负载均衡器上通过 scalr 运行。忘了考虑负载均衡器。
【解决方案2】:

原来是负载均衡器上运行的 nginx。 错误来自在 scalr 下运行的 nginx。因此 “后端服务器没有及时响应。应用服务器太忙,无法及时处理请求。” - 标量错误。 一旦在 nginx 配置中提出 proxy_read_timeout 设置,脚本就会停止超时。

感谢上面的 scalr 链接 - 为我指明了正确的方向。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-09
    • 2012-10-12
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    • 2020-07-01
    相关资源
    最近更新 更多