linux

Nginx如何实现防盗链

小樊
52
2025-05-16 08:14:32
栏目: 编程语言

Nginx可以通过配置来实现防盗链功能,以下是具体的步骤:

1. 配置防盗链

方法一:使用valid_referers指令

server {
    listen 80;
    server_name example.com;

    location /protected/ {
        valid_referers none blocked server_names example.com www.example.com;
        if ($invalid_referer) {
            return 403 "Forbidden";
        }
        # 其他配置...
    }
}

方法二:使用ngx_http_referer_module模块

server {
    listen 80;
    server_name example.com;

    location /protected/ {
        if ($http_referer !~* "example.com|www.example.com") {
            return 403 "Forbidden";
        }
        # 其他配置...
    }
}

2. 配置缓存控制

为了进一步防止盗链,可以结合缓存控制来限制资源的访问。

server {
    listen 80;
    server_name example.com;

    location /protected/ {
        valid_referers none blocked server_names example.com www.example.com;
        if ($invalid_referer) {
            return 403 "Forbidden";
        }

        add_header Cache-Control "no-cache, no-store, must-revalidate";
        add_header Pragma "no-cache";
        add_header Expires "0";

        # 其他配置...
    }
}

3. 测试配置

在修改Nginx配置文件后,记得重新加载或重启Nginx服务以应用更改。

sudo nginx -s reload

或者

sudo systemctl reload nginx

注意事项

通过以上步骤,你可以有效地使用Nginx实现防盗链功能,保护你的网站资源不被非法引用。

0
看了该问题的人还看了