我总是在nginx配置中使用“return 444”来停止通过IP或错误的主机名直接访问我的服务器的抓取工具。它只是关闭连接。完美。
现在我想使用此响应而不是nginx抛出的标准404.html页面,但我在配置时失败。
error_page 500 502 503 504 /custom_50x.html;
这很好用,但我不能像这里一样“返回444”:
server {
listen 80;
server_name "";
return 444;
}
有人知道将这两者结合起来的方法吗?
提前致谢!
答案 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;
}