温馨提示×

如何利用Nginx配置实现防盗链

小樊
44
2025-08-30 02:02:24
栏目: 编程语言

防盗链是一种防止他人未经授权使用你的资源的技术。在Nginx中,可以通过配置ngx_http_referer_module模块来实现防盗链。以下是一个简单的示例,说明如何使用Nginx配置实现防盗链:

  1. 打开Nginx配置文件。通常位于/etc/nginx/nginx.conf/etc/nginx/sites-available/your_domain.conf

  2. server块中,添加以下配置:

location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
    valid_referers none blocked your_domain.com *.your_domain.com;
    if ($invalid_referer) {
        rewrite ^/ - [R=403,L];
    }
}

这里的配置解释如下:

  • location ~* \.(jpg|jpeg|png|gif|ico|css|js)$:匹配所有以.jpg, .jpeg, .png, .gif, .ico, .css, .js结尾的文件请求。
  • valid_referers none blocked your_domain.com *.your_domain.com;:设置允许的引用来源。none表示不允许任何引用来源,blocked表示允许被Nginx阻止的引用来源(例如,来自广告联盟的请求),your_domain.com*.your_domain.com表示允许你的域名及其子域名作为引用来源。
  • if ($invalid_referer):如果引用来源无效(即不在允许的引用来源列表中),则执行以下操作:
    • rewrite ^/ - [R=403,L]:将请求重写为403 Forbidden状态码,并停止处理后续配置。
  1. 保存配置文件并退出。

  2. 重新加载Nginx以应用更改:

sudo nginx -t      # 检查配置文件语法是否正确
sudo nginx -s reload  # 重新加载配置文件

现在,Nginx将根据配置实现防盗链功能。如果用户尝试从未经授权的域名访问受保护的资源,他们将收到403 Forbidden错误。

0