gpt4 book ai didi

php - 使用 PHP 了解 Apache 上的 “408 Request Timeout”

转载 作者:IT王子 更新时间:2023-10-29 00:05:32 28 4
gpt4 key购买 nike

问题描述 - Apache 日志

我在 Apache 日志文件中发现了与此类似的项目:

166.147.68.243 [24/Feb/2013:06:06:25 -0500] 19 web-site.com "-" 408 - "-"

我有自定义日志格式,这里的 408 代表状态。日志格式为:

LogFormat "%h %t %D %V \"%r\" %>s %b \"%{User-agent}i\"" detailed

通常日志文件中的行看起来像

184.73.232.108 [26/Feb/2013:08:38:16 -0500] 30677 www.site.com "GET /api/search... HTTP/1.1" 200 205 "Zend_Http_Client"

这就是为什么 408 错误行对我来说看起来很奇怪。没有记录任何请求,我不知道应该优化什么。

问题

如何解决这个问题?我应该收集哪些额外的信息或日志?什么可能导致问题?这是服务器上有问题吗?或者这绝对是网络连接问题?

我正在解决这个问题,因为我们的客户提示他的手机出现 408 错误。我在日志文件中发现了很多记录,但我不得不承认我不知道如何处理这些记录。


我自己的研究

这里已经有几个关于这个主题的问题。但是人们要具体得多。就像他们讨论某些特定客户端软件和脚本的问题一样。在这里,我刚刚在 iPhone 上打开某个页面时遇到错误。

例如 HTTP, 408 Request timeout ,建议在POST之前做GET请求。如果我有自定义客户端,我可以这样做。但是我无法控制用户浏览器的行为。

猜测 #1

在网上搜索和思考这个问题时,我发现了https://serverfault.com/questions/383290/too-many-408-error-codes-in-access-log

建议更新Timeout配置参数恢复到默认值。

#
# Timeout: The number of seconds before receives and sends time out.
#
Timeout 300

我首先尝试了值 30,因为我认为 30 秒应该足够了。 但即使使用 300 秒的默认值,我仍然会在日志中收到错误。我在编写此文本时执行了 tail -f 并得到了超过 10 行几分钟。

对我来说,这看起来不是一个完整的解决方案。

最佳答案

经过对这个主题的一些研究,我得出了以下答案。它由我们的首席开发人员提供,我认为它很好地解释了这个主题。

这些错误是完全正常的。它们不是更大问题的迹象,而是正常连接使 Apache 打开的时间超过允许的时间。

例如,客户端的查询一遍又一遍地运行它们使 Apache 保持打开状态。 Apache 的回应是适本地关闭了他。

如果没有,那么少数人就可以接管我们的服务器并且不允许其他任何人连接。

大多数情况下,这些错误来自寻找漏洞利用的系统,您可以通过打开 telnet session 并将其保持打开状态来重新创建它。

同时,tail -f 访问日志,在 X 时间(KeepAliveTimeout)内,您将看到您的 IP 弹出窗口,其中包含相同的错误代码。

在 Apache 1.3 时代,这个错误很常见,但后来 2.2 出来了,他们把它删除了,直到我们中有足够多的人要求归还它,因为它让我们知道有多少人持有开放的态度端口,而不是请求实际资源等。

除了确保将超时设置为我在原始问题中描述的某个合理值外,我认为这里不应该做任何其他事情。

关于php - 使用 PHP 了解 Apache 上的 “408 Request Timeout”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15090897/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com