nginx优化图片防盗链
公司网站有很多图片,为防止图片被盗链,所以对nginx进行优化。
配置后所有盗链的图片都会失效。
Syntax: valid_referers none | blocked | server_names | string ...;
Default: —
Context: server, location
Specifies the “Referer” request header field values that will cause the embedded $invalid_referer variable to be set to an empty string. Otherwise, the variable will be set to “1”. Search for a match is case-insensitive.
配置如下:
rewrite_log on;
valid_referers none blocked *.openc2p.cn openc2p.com servicewechat.com *.qq.com;
if ( $invalid_referer) { #没有匹配到规则 invalid_referer的值为1 if条件成立就会跳转
rewrite ^/ https://newstatic.rongbiz.com/skin/rongbiz/images/404-new.gif;
}
none 代表没有referer
blocded代表有referer但是被防火墙或者是代理给去除了。
PS:
首先当我输入我要打开的网址的时候,因为是直接输入的没有referer所以匹配了
valid_referers后面的none或者是blocked 所以invalid_referer值为0 所以不进行跳转.
当我是从这个网站里面的链接跳到该网站首页的时候 因为referer的值是肯定包含srever_names 所以匹配了server_names所以不进行跳转。
当我从搜素引擎进去的时候因为referer字段类似于www.google.com.hk/search
开始进行匹配 发现没有一个匹配,则此时会设置invalid_referer值为1 if语句成功执行,进行了跳转. 达到功能
资料参考:
https://nginx.org/en/docs/http/ngx_http_referer_module.html#valid_referers
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!