配置Nginx的防盗链

💡 原文中文,约4400字,阅读约需11分钟。
📝

内容提要

本文介绍了如何使用Nginx配置防盗链网站。首先配置了两个网站,然后在site1.test.com上配置了防盗链,只允许site1.test.com访问图片资源。接着配置了防盗链返回其他资源的功能,如果不符合白名单,则重定向到site3.test.com上的notfound.jpg文件。最后介绍了Nginx的基础知识和核心配置详解。

🔎

延伸解读

防盗链的两种处理方式:拒绝与替换

文章演示了防盗链的两种典型响应:一是直接返回403状态码,让盗链请求无法获取资源;二是通过rewrite将请求重定向到另一台虚拟主机上的替代图片。前者实现简单,适合明确拒绝外部引用;后者能保持页面视觉完整,但需要额外准备替代资源并配置对应虚拟主机。选择哪种方式取决于业务对用户体验和资源保护强度的权衡。

valid_referers白名单的匹配逻辑

配置中valid_referers用于定义允许访问的Referer来源,多个值以空格分隔,并支持*进行泛域名匹配。当请求的Referer不在白名单内时,$invalid_referer变量为真,进而执行if块内的return或rewrite。需要注意的是,该规则只对location中指定的文件类型生效,例如示例中的jpg、png、gif、jpeg,其他类型资源不受影响。

实验环境与验证步骤的参考价值

文章基于CentOS 7.3与nginx 1.12.2搭建了两个虚拟主机,并通过宿主机hosts文件映射域名来模拟盗链场景。验证时强调清除浏览器缓存,否则可能因缓存导致防盗链效果观察不准确。这一流程适合在测试环境中复现,但生产环境还需考虑CDN、代理服务器等因素对Referer的影响。

❓

Q&A

如何在Nginx中配置防盗链?

在Nginx中配置防盗链需要在server块中添加location指令,使用valid_referers指定允许的来源,若不符合则返回403或重定向到指定地址。

Nginx的防盗链配置有什么作用?

Nginx的防盗链配置可以防止其他网站盗用本网站的资源,确保只有指定网站可以访问特定的文件类型,如图片。

如何重定向未授权访问的资源?

可以在Nginx配置中使用rewrite指令,将未授权访问的资源重定向到指定的notfound.jpg文件。

Nginx的核心配置有哪些?

Nginx的核心配置包括虚拟主机的设置、反向代理、HTTPS加密传输等,支持不同IP和域名的配置。

如何在CentOS上安装和配置Nginx?

在CentOS上安装Nginx需要创建网站根目录、编辑配置文件、启动Nginx服务并放通80端口。

Nginx的工作进程和主进程有什么区别?

Nginx的主进程负责管理配置和工作进程,而工作进程处理客户请求并与后端服务器通信。

🏷️

标签

➡️

继续阅读