温馨提示×

怎样用Nginx配置实现防盗链

小樊
32
2025-12-12 21:18:04
栏目: 编程语言

使用Nginx配置实现防盗链是一种常见的安全措施,可以防止他人未经授权地使用你的服务器上的资源。以下是一个基本的Nginx配置示例,用于实现防盗链:

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

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

    server {
        listen 80;
        server_name example.com;
    
        location / {
            # 允许的引用页
            valid_referers none blocked server_names ~\.example\.com$;
    
            # 如果引用页不合法,则返回403 Forbidden
            if ($invalid_referer) {
                return 403;
            }
    
            # 其他配置...
        }
    
        location /images/ {
            # 允许的引用页
            valid_referers none blocked server_names ~\.example\.com$;
    
            # 如果引用页不合法,则返回403 Forbidden
            if ($invalid_referer) {
                return 403;
            }
    
            # 其他配置...
        }
    }
    

    解释:

    • valid_referers 指令用于指定允许的引用页。none 表示不允许任何引用页,blocked 表示允许被Nginx阻止的引用页,server_names 表示允许的域名列表,~\.example\.com$ 表示允许的域名模式。
    • if ($invalid_referer) 指令用于检查引用页是否合法,如果不合法则返回403 Forbidden状态码。
  3. 测试配置: 在保存配置文件后,运行以下命令测试Nginx配置是否正确:

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

    sudo systemctl reload nginx
    

通过以上步骤,你可以实现基本的防盗链功能。你可以根据实际需求调整 valid_referers 指令中的配置,以适应不同的防盗链场景。

0