HTTP 444(无响应)而不是 404、403 错误页面?
HTTP 444 (No Response) instead of 404, 403 error pages?
我总是在 nginx 配置中使用 "return 444" 来阻止通过 IP 或通过错误的主机名直接访问我的服务器的爬虫。它只是关闭连接。完美。
现在我想使用此响应而不是 nginx 抛出的标准 404.html 页面,但我无法配置。
error_page 500 502 503 504 /custom_50x.html;
这很好用,但我不能像这里那样 "return 444":
server {
listen 80;
server_name "";
return 444;
}
有人知道结合这两者的方法吗?
提前致谢!
重定向请求然后你可以很容易地return状态代码
server {
error_page 500 502 503 504 =444 @blackhole;
location @blackhole {
return 444;
}
}
只是想补充一点,当某些奇怪的请求被发送到服务器时,使用 @blackhole
命名位置会引发 Nginx 的默认 500 错误页面(更多详细信息 here),从而得到期望的结果(444 ) 没有实现。
我使用以下符号来解决这个问题:
error_page 301 400 403 404 500 502 503 504 =444 /444.html;
location = /444.html {
return 444;
}
Update:注意,如果上面的块本身在location
块内,位置路径location = /444.html {…
可能会在重新加载时提示Nginx错误,因为Nginx 要求它是父 location
块的 子位置 --> 例如:location = [sub-location]/444.html {…
.
我总是在 nginx 配置中使用 "return 444" 来阻止通过 IP 或通过错误的主机名直接访问我的服务器的爬虫。它只是关闭连接。完美。
现在我想使用此响应而不是 nginx 抛出的标准 404.html 页面,但我无法配置。
error_page 500 502 503 504 /custom_50x.html;
这很好用,但我不能像这里那样 "return 444":
server {
listen 80;
server_name "";
return 444;
}
有人知道结合这两者的方法吗?
提前致谢!
重定向请求然后你可以很容易地return状态代码
server {
error_page 500 502 503 504 =444 @blackhole;
location @blackhole {
return 444;
}
}
只是想补充一点,当某些奇怪的请求被发送到服务器时,使用 @blackhole
命名位置会引发 Nginx 的默认 500 错误页面(更多详细信息 here),从而得到期望的结果(444 ) 没有实现。
我使用以下符号来解决这个问题:
error_page 301 400 403 404 500 502 503 504 =444 /444.html;
location = /444.html {
return 444;
}
Update:注意,如果上面的块本身在location
块内,位置路径location = /444.html {…
可能会在重新加载时提示Nginx错误,因为Nginx 要求它是父 location
块的 子位置 --> 例如:location = [sub-location]/444.html {…
.