KillSpider 集成与配置
KillSpider 既可以配合 Nginx 充当“看门人”角色(推荐),也可以作为独立的 API 被您的应用程序调用。
前置准备
- 确保 KillSpider 主程序已启动,默认监听
127.0.0.1:5000 - 确保
config.json和license.key配置正确 - 确保 Nginx 服务器能访问 KillSpider 监听端口
1
Nginx 集成模式 生产环境推荐
使用 auth_request 模块,在处理请求前先进行鉴权。
Nginx
鉴权网关
200 OK
后端业务
401 Err
拦截页面
/etc/nginx/nginx.conf
http { # ... 其他配置 ... server { listen 80; server_name www.your-website.com; # ========================================================= # [核心配置] 定义 KillSpider 验证接口 # 该 location 是内部调用的,外部无法直接访问 # ========================================================= location = /_killspider_check { internal; # 仅允许内部访问 # 转发给 KillSpider 运行的地址 proxy_pass http://127.0.0.1:5000/check; # [关键] 必须传递原始请求的特征信息,否则无法判断! proxy_pass_request_body off; # 不需要请求体,只发头信息 proxy_set_header Content-Length ""; # 1. 传递真实 IP (KillSpider 封禁的基础) proxy_set_header X-Real-IP $remote_addr; # 2. 传递原始访问的 URL (用于关键字过滤) proxy_set_header X-Original-URI $request_uri; # 3. 传递 User-Agent (用于识别爬虫特征) proxy_set_header User-Agent $http_user_agent; } # ========================================================= # [应用配置] 保护您的业务页面 # ========================================================= location / { # 1. 开启鉴权:每个请求都会先去 /_killspider_check 跑一遍 auth_request /_killspider_check; # 2. 定义拦截后的行为 (当 KillSpider 返回 401 时) error_page 401 = @error401; # 正常业务转发 proxy_pass http://127.0.0.1:8080; } # [可选] 自定义拦截返回页面 location @error401 { default_type text/plain; return 401 "Access Denied: Blocked by KillSpider Firewall."; } } }
配置生效: 修改完配置后,请测试并重载 Nginx
nginx -t && nginx -s reload
2
独立使用 (API 模式) 开发集成
适用于不使用 Nginx 或需要在应用代码层面(Python/Java/Go)手动鉴权的场景。
接口定义
URL
http://127.0.0.1:5000/check
Method
GET
必需 Headers:
- X-Real-IP : 待检测的 IP
- X-Original-URI : 待检测 URL (可选)
- User-Agent : 浏览器指纹
返回值
200 OK
检测通过,允许访问。
401 Unauthorized
检测不通过(黑名单/高频/假爬虫),拒绝访问。
# 模拟一个正常用户 curl -v http://127.0.0.1:5000/check \ -H "X-Real-IP: 192.168.1.100" \ -H "X-Original-URI: /index.html" \ -H "User-Agent: Mozilla/5.0 Windows NT 10.0" # 模拟一个恶意爬虫 (在 BadIPs.txt 中或带有恶意关键字) curl -v http://127.0.0.1:5000/check \ -H "X-Real-IP: 10.0.0.5" \ -H "X-Original-URI: /admin/login.php" \ -H "User-Agent: python-requests/2.25"
常见问题排查
Nginx 报错 500
1. 检查 KillSpider 主程序是否已启动。
2. 检查 nginx.conf 中 proxy_pass 地址是否正确指向了 127.0.0.1:5000。
防火墙无反应
检查 Nginx 配置中的 proxy_set_header X-Real-IP $remote_addr; 是否遗漏。如果没传 IP,系统默认放行。
Access Denied
说明拦截生效了。请查看 KillSpider 控制台或 logs 目录下的日志,确认是被“黑名单”还是“动态盾”拦截。
配置遇到困难?联系技术支持获取远程协助
联系客服