HTTP2.0 拦截爬虫的tips
首要条件
Nginx1.10.0以上版本才支持Http2.0,如果使用的是Tengine,版本需要大于2.2.1 Http2.0只支持Https协议的网站,且openssl版本需要高于1.0.2
一、查看当前Nginx安装了哪些模块(如果事先没有安装Nginx,请忽略此步
nginx -V
检查是否安装了模块–with-http_v2_module
三、配置Nginx
Nginx配置http2很简单,只需要在listen的端口后新增http2标识即可,如下
listen 443 ssl http2;
然后访问一下
设置禁止访问HTTP1.1
if ($server_protocol !~* "HTTP/2") { return 444; }
Burp 现在只能1.1 测试如下
试试requests 的爬虫
然后现在有些爬虫只能1.1 配置如下的设置即可
set $flag 0; if ($server_protocol !~* "HTTP/2"){ set $flag "1"; } if ($request_method !~ ^(GET|HEAD|POST)$) { set $flag "1"; } if ($http_user_agent ~* (baiduspider|googlebot|soso|bing|sogou|yahoo|sohu-search|yodao|YoudaoBot|robozilla|msnbot|MJ12bot|NHN|Twiceler)){ set $flag "0"; } if ($flag = "1"){ return 404; }