HTTP 444(无响应)而不是404,403错误页面?

时间:2017-01-02 03:44:27

标签: http nginx http-status-code-404 httpresponse

我总是在nginx配置中使用“return 444”来停止通过IP或错误的主机名直接访问我的服务器的抓取工具。它只是关闭连接。完美。

现在我想使用此响应而不是nginx抛出的标准404.html页面,但我在配置时失败。

    error_page 500 502 503 504 /custom_50x.html;

这很好用,但我不能像这里一样“返回444”:

    server {
    listen      80;
    server_name "";
    return      444;
}

有人知道将这两者结合起来的方法吗?

提前致谢!

2 个答案:

答案 0 :(得分:7)

重定向请求,然后您可以轻松返回状态代码

server {
error_page 500 502 503 504 =444 @blackhole;

  location @blackhole {
    return 444;
  }
}

答案 1 :(得分:0)

只想补充一点,当某些奇怪的请求发送到服务器时,使用命名为@blackhole的位置会引发Nginx的默认500错误页面(更多详细信息here),因此期望的结果(444)为没有实现。

我改用以下符号来解决此问题:

error_page 301 400 403 404 500 502 503 504 =444 /444.html;
location = /444.html {
        return 444;
}