ua-restriction

一种常见的场景是用来设置爬虫规则。User-Agent 是客户端在向服务器发送请求时的身份标识,用户可以将一些爬虫程序的请求头列入 ua-restriction 插件的白名单或黑名单中。

note

allowlistdenylist 可以同时启用。同时启用时,插件会根据 User-Agent 先检查 allowlist,再检查 。

当未允许的 User-Agent 访问时,默认返回 {"message":"Not allowed"}。如果你想使用自定义的 message,可以在 plugins 部分进行配置:

  1. "ua-restriction": {
  2. "denylist": [
  3. "my-bot2",
  4. "(Twitterspider)/(\\d+)\\.(\\d+)"
  5. ],
  6. "message": "Do you want to do something bad?"
  7. }

通过上述命令启用插件后,你可以先发起一个简单的请求测试:

  1. HTTP/1.1 200 OK
  2. ...

接下来,请求的同时指定处于 denylist 中的 User-Agent,如 Twitterspider/2.0

返回的 HTTP 响应头中带有 403 状态码,请求失败,代表插件生效:

  1. HTTP/1.1 403 Forbidden
  2. ...
  3. {"message":"Not allowed"}