444 并不是真正的 HTTP 状态码,而是 nginx 中的一个特殊值:return 444; 让 nginx 不发送任何响应头或响应体,直接关闭连接。444 只出现在 nginx 的访问日志中,客户端永远不会收到它。
管理员用它以很低的成本丢弃不需要的流量,例如带有未知 Host 请求头的请求、探测 wp-login.php 或 .env 文件的扫描器,以及被屏蔽的 User-Agent。对客户端来说,连接只是被关闭了:浏览器会显示 ERR_EMPTY_RESPONSE 之类的错误,curl 会报告“Empty reply from server”。
如果网站位于 Cloudflare 后面,访客看到的会是 520,因为 Cloudflare 从源服务器收到了空响应。
响应示例
HTTP
# Nothing is sent back. The client only sees the connection close:
$ curl -i http://example.com/wp-login.php
curl: (52) Empty reply from server
# nginx access.log
203.0.113.7 - - [06/Nov/2026:10:15:32 +0000] "GET /wp-login.php HTTP/1.1" 444 0 "-" "curl/8.11.1" SEO 与重定向检测
由于没有发送任何响应,爬虫记录的是连接错误而不是状态码,Google 会像对待服务器错误一样对待这类错误:放慢抓取速度,如果问题持续存在,页面就会被移除。要确保 444 规则只匹配不需要的流量,绝不匹配真正的爬虫。重定向检测工具会把这样的一跳报告为连接错误,因为没有任何状态码可以显示。
常见原因与使用场景
- 默认的
server块用return 444;丢弃针对未知主机名的请求。 - 安全规则丢弃漏洞扫描器和恶意爬虫的请求。
- 规则范围过宽,也匹配了合法请求,导致部分访客收到空响应。