禁用 apache httpd 和 fastcgi 上的超时

禁用 apache httpd 和 fastcgi 上的超时

运行 apache httpd 2.2.11 和 fastcgi 的 debian lenny 服务器会在请求耗时超过一定秒数时终止请求。我想禁用此超时,以便能够调试使用 fastcgi 启动的应用程序。

我已经搜索了 apache 和 lighttpd 文档,但没有找到任何东西(只有像 idle-timeout 这样的选项,我想这里不是这种情况)。

有人知道如何控制这个超时吗?谢谢。

答案1

看起来你想要一个FastCGI 指令:FastCGIServer、FastCGIConfig 或 FastCgiExternalServer,视情况而定。 FastCGIConfig影响所有 FastCGI 应用程序;其他两个是针对每个应用程序的。您需要以下选项之一(请查看文档以确定哪个合适):

-appConnTimeout n(0 秒)
Unix:等待与 FastCGI 应用程序的连接完成的秒数,或 0 表示应使用阻塞 connect()。阻塞 connect() 具有与操作系统相关的内部超时。如果超时到期,则会产生结果SERVER_ERROR 。对于非零值,这是 select() 中用于写入非阻塞 connect() 返回的文件描述符的时间量。非阻塞 connect() 在许多平台上都很麻烦。另请参阅 -idle-timeout,它会产生类似的结果,但方式更易于移植。Windows
NT:基于 TCP 的应用程序的工作方式与上述相同。基于命名管道的应用程序(未配置 -port 选项的静态应用程序和动态应用程序)成功使用此值来限制等待连接的时间量(即它不“麻烦”)。默认情况下,这是 90 秒(FCGI_NAMED_PIPE_CONNECT_TIMEOUT在 mod_fastcgi.h 中)。

-idle-timeout n(30 秒)
在请求被中止并记录事件(在错误日志级别)之前允许 FastCGI 应用程序处于不活动状态的秒数。不活动计时器仅在与 FastCGI 应用程序的连接处于待处理状态时才适用。如果请求已排队到应用程序,但应用程序在此期间未响应(通过写入和刷新),则请求将被中止。如果与应用程序的通信已完成但与客户端的通信未完成(响应已缓冲),则超时不适用。

-min-server-life n(30)
在应用程序重新启动间隔增加到 600 秒之前,应用程序必须运行的最小秒数。服务器将有 3 次尝试运行至少此秒数。

答案2

在 Apache 中,您需要的指令是 Timeout。在某些发行版中,它的默认值为 300 左右。许多人已经开始降低该值以缓解“Slowloris”类型的攻击。

Timeout 10

如果您愿意,应该可以将其设置为最多 10 分钟:

Timeout 600

相关内容