FreeBSD 上 Apache httpd 重启时出现 httpready 问题?

FreeBSD 上 Apache httpd 重启时出现 httpready 问题?

我在 FreeBSD 7.2 Web 服务器上运行 Apache HTTPD 2.2。我已在我的 中启用了httpready和,如下所示:dataready/boot/loader.conf

accf_http_load="YES"
accf_data_load="YES"

当服务器启动时,这很好用,但是每当我重新启动(通过apachectl gracefulapachectl restart)时,我都会在我的中收到如下信息/var/log/httpd-error.log

[Thu Oct 08 13:32:53 2009] [warn] (22)Invalid argument: Failed to enable the 'httpready' Accept Filter
[Thu Oct 08 13:32:53 2009] [warn] (22)Invalid argument: Failed to enable the 'dataready' Accept Filter
[Thu Oct 08 13:32:53 2009] [warn] (22)Invalid argument: Failed to enable the 'httpready' Accept Filter
[Thu Oct 08 13:32:53 2009] [warn] (22)Invalid argument: Failed to enable the 'dataready' Accept Filter
[Thu Oct 08 13:32:53 2009] [warn] (22)Invalid argument: Failed to enable the 'httpready' Accept Filter
[Thu Oct 08 13:32:53 2009] [warn] (22)Invalid argument: Failed to enable the 'httpready' Accept Filter

ASF bugzilla 上有一个关于此问题的错误,但这看起来不会很快发生,所以与此同时,我想查明这是否真的是一个问题(尽管出现警告,httpready 过滤器是否仍然有效?),如果是,是否有解决方法?

答案1

我认为这是两种情况之一。要么是 Apache 在打开新的侦听套接字之前没有关闭先前的连接(或者它甚至可能回收旧连接),要么是内核将过滤器的使用与 PID 而不是套接字关联起来(这充其量也很奇怪)。肯定是哪里出了问题,但我不确定是 Apache 的问题还是内核的问题。这个问题在 9.0 和 2.2.20 中仍然存在。

由于两年内似乎没人关心过这个问题,而且可以使用 rc 脚本而不是 apachectl 轻松解决,所以我不会去追查它(抱歉)。

答案2

无论如何,您现在都不想在 FreeBSD 上使用 httpready 过滤器。我建议完全禁用它。

答案3

只需打开 shell 提示符并输入以下命令即可在 FreeBSD 下加载 accf_http:

# kldload accf_http 重新启动apache:

# /usr/local/etc/rc.d/apache22 restart 更新 /boot/loader.conf 文件

键入以下命令,以便在启动系统时加载驱动程序:

# echo 'accf_http_load="YES"' >> /boot/loader.conf

http://www.cyberciti.biz/faq/failed-to-enable-the-httpready-accept-filter/

相关内容