debian

Debian Nginx如何实现防盗链

小樊
42
2025-02-21 05:24:32
栏目: 智能运维

在Debian系统上使用Nginx实现防盗链,可以通过配置Nginx的ngx_http_referer_module模块来完成。这个模块允许你根据HTTP请求头中的Referer字段来控制访问权限。以下是具体步骤:

  1. 安装Nginx(如果尚未安装):

    sudo apt update
    sudo apt install nginx
    
  2. 编辑Nginx配置文件: 打开Nginx的主配置文件,通常位于/etc/nginx/nginx.conf/etc/nginx/sites-available/default

    sudo nano /etc/nginx/sites-available/default
    
  3. 添加防盗链配置: 在server块中添加以下配置,以限制特定域名的访问:

    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
      • server_names:允许的服务器域名。
      • ~\.example\.com$~\.trusted\.domain\.com$:正则表达式匹配的域名。
    • if ($invalid_referer):如果Referer无效,则返回403 Forbidden状态码。
  4. 测试配置: 在保存并退出编辑器后,测试Nginx配置是否正确:

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

    sudo systemctl reload nginx
    

通过以上步骤,你就可以在Debian系统上使用Nginx实现防盗链功能。请根据实际需求调整允许的域名列表和其他配置。

0
看了该问题的人还看了