今天给大家带来的是Nginx配置代码之屏蔽策略,主要用于屏蔽特定类型的访问请求,包括电脑端、微信/QQ客户端、搜索引擎爬虫以及来自特定搜索引擎的引用流量。
1. 屏蔽电脑端访问
if ($http_user_agent ~* "windows") { return 444; } #屏蔽电脑端访问
通过匹配User-Agent中的Windows关键字(不区分大小写),屏蔽所有来自Windows系统的请求,通常用于限制电脑端访问,仅允许移动设备。(需要注意的是:可能会误伤部分非Windows设备或合法流量,请结合实际业务场景进行调整)
2. 屏蔽微信客户端
if ($http_user_agent ~* "MicroMessenger") { return 444; } #屏蔽微信客户端
微信客户端的User-Agent通常包含MicroMessenger,这条规则会拦截来自微信内置浏览器的访问。常用于防止微信内分享链接被滥用,或限制特定业务场景的访问来源。
3. 屏蔽QQ客户端
if ($http_user_agent ~* "QQ/") { return 444; } #屏蔽 QQ客户端
QQ客户端则包含QQ/,这条规则会拦截来自QQ浏览器的访问。常用于防止QQ内分享链接被滥用,或限制特定业务场景的访问来源。
4. 屏蔽搜索引擎的引用流量
if ($http_referer ~* "baidu.com|sogou.com|so.com|google.com|bing.com|sm.cn") { return 444; } #屏蔽搜索引擎的引用流量
通过检查HTTP请求头中的Referer字段,拦截来自百度、搜狗、Google等搜索引擎的跳转流量。防止竞争对手通过搜索引擎爬取内容,或减少无效引流的带宽消耗。
5. 屏蔽搜索引擎爬虫和恶意爬虫
if ($http_user_agent ~* "SemrushBot|python|AhrefsBot|hubspot|opensiteexplorer|leiki|webmeup|Baiduspider|baiduspider|sogou spider|sogou web|360spider|Bytespider|toutiao|Sosospider|YodaoBot|msnbot|Googlebot|Amazonbot|dataforseo|DataForSeoBot|semrush|babbar|mj12bot|116.0.0.0") { return 444; } #屏蔽搜索引擎爬虫和恶意爬虫
6、屏蔽QQ安全中心扫描
# 屏蔽User-Agent(根据日志增删UA) if ($http_user_agent ~* "(QQSecurity|QQScan|Tencent)") { return 444; } # IP黑名单(根据日志增删IP,0.0.0.0/00是举例IP,根据实时日志情况增删。例如:119.28.0.0/16 ) deny 0.0.0.0/00; allow all; # 启用限流 location / { limit_req zone=antiscan burst=5 nodelay; }
匹配常见的爬虫User-Agent(如SemrushBot、Baiduspider、Googlebot等,可根据实际业务场景进行调整增删爬虫UA),直接返回444状态码中断连接 ,阻止非必要爬虫消耗服务器资源。