温馨提示×

怎样用Nginx配置防盗链功能

小樊
35
2026-01-05 08:56:51
栏目: 编程语言

在Nginx中配置防盗链功能可以通过检查HTTP请求头中的Referer字段来实现。以下是一个基本的配置示例,展示了如何使用Nginx来防止防盗链:

  1. 打开Nginx配置文件: 通常位于/etc/nginx/nginx.conf/etc/nginx/conf.d/default.conf

  2. 添加防盗链配置: 在server块或location块中添加以下配置:

    server {
        listen 80;
        server_name example.com;
    
        location / {
            # 允许的域名列表
            valid_referers none blocked server_names ~\.example\.com$ ~\.trusted\.domain\.com$;
    
            if ($invalid_referer) {
                return 403 "Forbidden";
            }
    
            # 其他配置...
            root /var/www/html;
            index index.html index.htm;
        }
    }
    

    解释:

    • valid_referers指令用于指定允许的Referer值。可以设置为以下几种情况:
      • none:不允许任何Referer
      • blocked:允许被Nginx阻止的Referer(例如,来自已知的恶意IP)。
      • server_names:允许指定的服务器域名。
      • 正则表达式:允许匹配特定模式的域名,例如~\.example\.com$允许example.com及其子域名。
    • if ($invalid_referer):如果Referer无效,则返回403 Forbidden状态码。
  3. 测试配置: 在保存配置文件后,运行以下命令测试Nginx配置是否正确:

    sudo nginx -t
    
  4. 重新加载Nginx: 如果配置测试通过,重新加载Nginx以应用更改:

    sudo systemctl reload nginx
    

通过以上步骤,你就可以在Nginx中配置防盗链功能,防止其他网站未经授权使用你的资源。

0