商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > 如何配置Nginx防盗链

如何配置Nginx防盗链

  发布于2026-06-02 阅读(0)

扫一扫,手机访问

配置Nginx防盗链,核心原理是通过验证HTTP请求头中的Referer字段,来判断访问资源的来源是否合法。实现起来并不复杂,下面直接进入配置流程。

如何配置Nginx防盗链

  1. 找到Nginx配置文件。通常情况下,主配置文件在/etc/nginx/nginx.conf,但防盗链规则一般放在具体网站的虚拟主机配置里,路径类似/etc/nginx/sites-a vailable/yourdomain.com。用你习惯的编辑器打开它,比如:

    sudo nano /etc/nginx/sites-a vailable/yourdomain.com
  2. server块中添加防盗链配置。以下是一个典型的示例,放在location /块中即可:

    server {
        listen 80;
        server_name yourdomain.com www.yourdomain.com;
    
        location / {
            # 允许的来源
            valid_referers none blocked server_names yourdomain.com www.yourdomain.com;
    
            # 如果Referer不在允许列表中,返回403 Forbidden
            if ($invalid_referer) {
                return 403;
            }
    
            # 其他配置...
            root /var/www/html;
            index index.html index.htm;
        }
    }

    这里解释几个关键点:

    • valid_referers指令用来定义哪些来源是合法的。可以设置none(不允许任何来源)、blocked(阻止的来源)、server_names(允许你指定的域名列表)。
    • $invalid_referer是Nginx内置变量,当请求的Referer不在上述允许列表中时,它会变成true
    • 后面的if语句就是判断:如果来源不合法,直接返回403状态码,拒绝访问。
  3. 保存文件并退出编辑器。使用Ctrl+X,按Y确认,再按Enter完成保存。

  4. 检查配置语法是否正确。这一步千万别跳过:

    sudo nginx -t

    如果配置没问题,会看到类似输出:

    nginx: configuration file /etc/nginx/nginx.conf test is successful
  5. 重新加载Nginx使配置生效:

    sudo systemctl reload nginx

    或者对于较老的系统,也可以用:

    sudo service nginx reload

完成以上步骤后,防盗链机制就会生效。你可以根据实际需求调整valid_referers中的域名列表,比如加上你的CDN域名、图片服务器域名等。另外,注意if语句在Nginx中性能开销并不高,但如果规则复杂(比如需要配合多个条件),建议改用mapreturn配合ngx_http_referer_module的变量方式,这样更灵活。不过对于大部分场景,上述配置已经够用。

本文转载于:https://www.yisu.com/ask/91785848.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注