了解 http 响应

了解 http 响应

我的网站刚刚被一个失控的蜘蛛机器人攻击了。我已通过 htaccess 阻止了它,但我的 apache 日志显示 http 响应“403 199”。403 没问题。199 是什么?另外,为什么它仍然占用我 20% 的 CPU?

答案1

  • 199是响应的大小(以字节为单位)。请查看“常见日志格式”https://httpd.apache.org/docs/current/mod/mod_log_config.html#formats
  • “为什么它仍然占用了我 20% 的 CPU?”- 可能还有很多请求需要处理?如果您使用的是 t2.something EC2 实例,则可能已经用完了 CPU 积分,因此运行时 CPU 资源非常有限。
  • 如果您知道机器人的 IP / IP 范围,您最好使用 IP 表来阻止它,因为这样将使用更少的 CPU 资源。

    ~ # iptables -I INPUT -s BOT.IP.AD.DR -j DROP
    

顺便提一句“失禁蜘蛛机器人”…… ò_ô?!

希望有帮助:)

答案2

您可能知道,403 代码表示“禁止访问”。日志文件中 HTTP 响应代码后面的内容取决于对您的服务器/虚拟主机/站点/其他内容有效的 LogFormat 指令。您可能需要检查 Apache自定义日志格式并将其与 apache conf 文件中的内容进行比较。

例如,在我的计算机上(仅服务于一个网站),该网站有效的 apache 配置文件(/etc/apache2/sites-available/000-default.conf)包含以下部分:

CustomLog ${APACHE_LOG_DIR}/access.log combined

combined这说明我的访问日志使用我们在单独/主 apache conf 文件(/etc/apache2/apache2.conf)中定义的昵称,如下所示:

LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined

示例中的 403 对应于%>s格式标志。摘自文档:

%s - . For requests that have been internally redirected, this is the status of the original request. Use %>s for the final status.

接下来是 %O,表示发送的字节数:

%O -  sent, including headers. May be zero in rare cases such as when a request is aborted before a response is sent. You need to enable mod_logio to use this.

所以不要太在意“199”,这只是响应中发送的字节数。如果您的服务器每次都发送完全相同的页面,那么这可能只是 HTML 响应中的字符数。

相关内容