网站首页 > 技术教程 正文
1、Nginx防盗链配置案例配置
Nginx的防盗链配置可以帮助阻止其他网站盗用你的静态资源,确保资源仅被合法网站访问。以下是一个简单的Nginx防盗链配置案例:
假设你的网站域名是wuwh.com,并且你希望只允许wuwh123.com的网站引用你的图片资源。
server {
listen 80;
server_name wuwh.com;
location ~ \.(jpg|jpeg|png|gif)$ {
valid_referers none blocked wuwh123.com;
if ($invalid_referer) {
rewrite ^/ http://www.wuwh.com/403.html;
return 403;
}
# 允许其他的配置,如root、index等
root /path/to/your/static/files;
index index.html index.htm;
# 其他相关配置...
}
# 其他 server 配置...
}
在上述配置中:valid_referers 定义了允许的引用来源,其中none表示禁止所有引用,blocked表示不允许被引用,wuwh.com表示允许wuwh123.com引用。
对以gif、jpg、png、swf、flv为后缀的文件实行了防盗链处理。valid_referers指令用于指定允许访问资源的请求来源,none表示不允许任何Referer,允许缺失referer头部的请求访问,有referer就赋invalid_referer值为真。blocked表示检测Referer头域的值被防火墙或者代理服务器删除或伪装的情况。当请求通过防火墙或代理服务器时,有些安全设置会剔除或修改Referer头域,以保护用户的隐私或增强安全性。因此,当使用blocked时,Nginx将考虑到这种情况,并允许这些请求通过防盗链验证。在这个例子中,允许来自wuwh.com域名的请求访问资源。如果请求的来源不在valid_referers列表中,Nginx将重定向到http://www.wuwh.com/403.html,并返回403错误。
$invalid_referer 是Nginx内置变量,用于检查引用来源是否合法。
如果引用来源不在允许的列表中,返回403 Forbidden错误。
重新加载Nginx配置:
除了设置响应头,Nginx 还提供了其他一些方法来实现防盗链功能,包括:
使用if语句:可以使用if语句根据请求的某些条件来判断是否允许访问。例如,可以检查请求的User-Agent头部、IP 地址或其他参数,并根据这些条件决定是否允许访问。
使用rewrite指令:通过rewrite指令可以将不合法的请求重定向到指定的页面或 URL。可以将非法请求重定向到一个错误页面或登录页面,以提醒用户链接无效。
使用deny指令:使用deny指令可以直接拒绝不合法的请求。可以根据特定的条件(如IP 地址、User-Agent等)来拒绝请求,并返回相应的错误码。
使用第三方模块:Nginx 有许多第三方模块可以提供更高级的防盗链功能。例如,ngx_http_referer_module模块可以更细粒度地控制和检查Referer头部。
保存修改后,执行以下命令重启或重新加载Nginx配置:
sudo systemctl reload nginx
测试防盗链配置:
在浏览器中访问你的网站,并确保图片正常加载。然后尝试在其他域名下引用这些图片,确保防盗链机制生效。
请注意,防盗链配置是一种基本的安全措施,但并不是绝对安全。攻击者有可能伪造引用来源。因此,对于敏感资源,建议采用其他更强大的身份验证和授权机制,如使用签名URL、Token验证等。
猜你喜欢
- 2024-10-11 备战秋招/面试,Nginx学习笔记。金九银十你准备好了吗?
- 2024-10-11 python小课堂37 - 你并没有真正的理解 if name 的作用
- 2024-10-11 Nginx之强大变量运行的原理(nginx数据量很大怎么处理)
- 2024-10-11 「系统架构」Nginx调优之变量的使用(5)
- 2024-09-21 简历上写精通Nginx/OpenResty详解,Nginx的核心原理应该不过分吧
- 2024-09-21 Nginx配置可用参数(nginx 配置参数)
- 2024-09-21 后台服务器老是被勒索多半是没有使用Nginx代理
- 2024-09-21 详解linux多线程——互斥锁、条件变量、读写锁、自旋锁、信号量
你 发表评论:
欢迎- 最近发表
-
- Linux新手必看:几种方法帮你查看CPU核心数量
- linux基础命令之lscpu命令(linux中ls命令的用法)
- Linux lscpu 命令使用详解(linux常用ls命令)
- 如何查询 Linux 中 CPU 的数量?这几个命令要知道!
- 在linux上怎么查看cpu信息(linux如何查看cpu信息)
- 查看 CPU 的命令和磁盘 IO 的命令
- 如何在CentOS7上改变网卡名(centos怎么改网卡名字)
- 网工必备Linux网络管理命令(网工必备linux网络管理命令是什么)
- Linux 网络命令知多少(linux 网络 命令)
- Linux通过命令行连接wifi的方式(linux命令行连接无线网)
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)