Nginx可以非常容易地根据User-Agent过滤请求,
只需要在需要URL入口位置通过一个简单的正则表达式就可以过滤不符合要求的爬虫请求:
location / {
if
(
$http_user_agent
~*
"python|curl|java|wget|httpclient|okhttp"
) {
return
503
; }
# 正常处理
...
}
变量
$http_user_agent
是一个可以直接在
location
中引用的Nginx变量。
~*
表示不区分大小写的正则匹配,通过
python
就可以过滤掉80%的Python爬虫。