Nginx防盗链设置
原文:https://blog.liuzijian.com/post/e2c56cc3-1002-4f41-aec8-9a69f57e3c3f.html
1.防止盗链
要防止特定路径下的图片被盗链,可以在Nginx配置中针对图片文件的请求进行防护。以下是一个示例配置,假设你的图片存放在/img/路径下:
server {
listen 80;
server_name *.liuzijian.com;
location /img/ {
valid_referers none blocked *.liuzijian.com;
if ($invalid_referer) {
return 403; # 返回403 Forbidden
}
alias /public/img/;
}
}
注意:为防止目录穿越,alias使用时,location /img/需要使用/闭合,不可写成location /img,以下同理。
解释:
location /img/仅针对/img/路径下的请求。valid_referers指令确保只有来自你的域名的请求可以访问这些图片。
重新加载Nginx配置后,这将有效防止其他网站直接链接到你存放在/img/路径下的图片。
2.允许例外
如果你希望在某个特定图片上允许盗链,可以进行更细粒度的控制。
server {
listen 80;
server_name *.liuzijian.com;
# 允许盗链的特定图片
location = /img/logo.jpg {
# 允许所有Referer
add_header Access-Control-Allow-Origin *;
alias /img/logo.jpg;
}
# 其他图片路径的防盗链设置
location /img/ {
valid_referers none blocked *.liuzijian.com;
if ($invalid_referer) {
return 403; # 返回403 Forbidden
}
alias /public/img/;
}
}
解释:
location = /img/logo.jpg允许对特定图片的访问,无论Referer如何。add_header Access-Control-Allow-Origin *;可以使该图片支持跨域访问(如果需要)。
这样配置后,只有logo.jpg会被允许盗链,而其他图片则受到保护。请根据需要调整文件路径和配置。
3.阻止某个目录下特定格式图片被访问
location ~* ^/img/.*\.(jpg|png|gif)$ {
deny all;
}
解释:
这段 Nginx 配置的作用是禁止访问特定路径下的图片文件。具体来说,它禁止了 /img/ 目录下的所有 .jpg、.png 和 .gif 文件的访问。
~*: 这是一个正则表达式匹配操作符,用于进行不区分大小写的正则匹配。~ 表示大小写敏感的正则匹配,而 ~* 表示不区分大小写。
^/img/.*\.(jpg|png|gif)$: 这是匹配请求路径的正则表达式。具体解析如下:
^/img/: 以/img/开头的路径。.*: 匹配零个或多个任意字符(即匹配/img/目录下的所有文件及子目录)。\.(jpg|png|gif): 匹配以.jpg、.png或.gif结尾的文件名。注意:\.是转义字符,表示字面上的点号.。$: 匹配字符串的结尾,确保正则匹配到文件扩展名的结尾。
总结来说,这个正则表达式会匹配所有位于 /img/ 路径下,且扩展名为 .jpg、.png 或 .gif 的文件(不区分大小写)。
deny all;
deny all;: 这条指令表示拒绝所有人访问符合上述location条件的文件。也就是说,任何请求访问/img/目录下的.jpg、.png或.gif文件,都会被返回一个 403 Forbidden 错误,禁止访问。
Nginx防盗链设置的更多相关文章
- Nginx 防盗链设置
何谓'盗链' 此内容不在自己服务器上,而通过技术手段,绕过别人放广告有利益的最终页,直接在自己的有广告有利益的页面上向最终用户提供此内容. 常常是一些名不见经传的小网站来盗取一些有实力的大网站的地址( ...
- Nginx防盗链、访问控制、解析PHP相关配置及Nginx代理
6月11日任务 12.13 Nginx防盗链12.14 Nginx访问控制12.15 Nginx解析php相关配置12.16 Nginx代理 扩展502问题汇总 http://ask.apelearn ...
- Nginx防盗链配置案例配置,Nginx的知识分享
防盗链的含义:网站内容不在自己服务器上,而通过技术手段,绕过别人放广告有利益的最终页,直接在自己的有广告有利益的页面上向最终用户提供此内容. 常常是一些名不见经传的小网站来盗取一些有实力的大网站的地址 ...
- Nginx系列二:(Nginx Rewrite 规则、Nginx 防盗链、Nginx 动静分离、Nginx+keepalived 实现高可用)
一.Nginx Rewrite 规则 1. Nginx rewrite规则 Rewrite规则含义就是某个URL重写成特定的URL(类似于Redirect),从某种意义上说为了美观或者对搜索引擎友好, ...
- nginx防盗链、nginx访问控制、nginx解析php相关配制、nginx代理
1.nginx防盗链编辑:vim /usr/local/nginx/conf/vhost/test.com.conf写入: location ~* ^.+\.(gif|jpg|png|swf|flv| ...
- nginx防盗链配置
Ps:防盗链的意义就是保证自己的版权,不免网站的流量流失,为他人做嫁衣.下面是网上看到的三种方法: 修改 /usr/local/nginx/conf/nginx.conf 这个配置文件.找到locat ...
- nginx之旅(第二篇):nginx日志管理、nginx防盗链、nginx虚拟主机
一.nginx日志管理 Nginx访问日志主要有两个参数控制 1) log_format #用来定义记录日志的格式(可以定义多种日志格式,取不不同名字即可) log_format log_name s ...
- 使用NGINX+LUA实现WAF功能 和nginx 防盗链
使用NGINX+LUA实现WAF功能 一.了解WAF 1.1 什么是WAF Web应用防护系统(也称:网站应用级入侵防御系统 .英文:Web Application Firewall,简称: WAF) ...
- 六、Nginx 防盗链
盗链是指一个网站的资源(图片或附件)未经允许在其它网站提供浏览和下载.尤其热门资源的盗链,对网站带宽的消耗非常大,本文通过nginx的配置指令location来实现简单的图片和其它类型文件的防盗链. ...
- 什么是防盗链设置中的空Referer
设置防盗链时候指明和不指明空Referer的差别及实现后的效果? 什么是Referer? 这里的 Referer 指的是HTTP头部的一个字段,也称为HTTP来源地址(HTTP Referer).用来 ...
随机推荐
- ABP发布后通过外部URL调用不到方法
MVC要与Host项目发布保持同步,如果Host工程不保持同步就会导致调用不到新的方法,因为找不得新的dll.
- typescript 接口和对象类型(四)
在typescript中,我们定义对象的方式要用关键字interface(接口), 使用interface来定义一种约束,让数据的结构满足约束的格式.定义方式如下: // 定义一个接口类型 int ...
- Transformers包使用记录
Transformers是著名的深度学习预训练模型集成库,包含NLP模型最多,CV等其他领域也有,支持预训练模型的快速使用和魔改,并且模型可以快速在不同的深度学习框架间(Pytorch/Tensorf ...
- golang之项目部署
介绍 Go 语言可以使用内置命令行工具 go build 编译生成可执行文件.自 Go1.5 版本开始实现自举后,交叉编译也很方便,只需使用 GOOS.GOARCH 环境变量指定目标平台和架构. 部署 ...
- Redis迁移工具之Redis-shake
Redis-shake is a tool for synchronizing data between two redis databases. Redis-shake是一个用于在两个redis之间 ...
- 2022-2023 ACM-ICPC Nordic Collegiate Programming Contest (NCPC 2022)
F. Foreign Football 一共有\(n\)支队伍,每支队伍的名称为\(s_i\),给定一个\(n \times n\)的矩阵,\(a_{i,j}\)代表第\(i\)支队伍和第\(j\)支 ...
- MySQL 8.0 为什么会放弃查询缓存?
什么是查询缓存? 查询缓存就是将一次查询结果存储在内存中,假如下一次查询结果在内存中,就直接在内存中读取. 设计初衷 当然是提高性能,通过缓存来减少解析器.优化器.存储引擎的执行时间. MySQL查询 ...
- 基于 MongoTemplate 实现MongoDB的复杂查询
MongoDB是典型的非关系型数据库,但是它的功能越来越复杂,很多项目中,我们为了快速拓展,甚至直接使用Mongo 来替代传统DB做数据持久化.虽然MongoDB在支持具体业务时没有问题,但是由于它是 ...
- Ant Design X:卓越的AI界面解决方案
Ant Design X:卓越的AI界面解决方案 Ant Design X 是 Ant Design 的全新 AGI 组件库,旨在帮助开发者更轻松地研发 AI 产品用户界面.Ant Design ...
- 在 .net core 与 .net framework 应用之间共享库
如果你对 .net core 做了任何重要的提交,你就需要为 .net framework 共享同样的库,因为,.net core 是一个新兴的系统生态系统,仍然缺失很多部分. 在混合系统中,你有两个 ...