防盗链是一种防止他人未经授权使用你的资源的技术。在Nginx中,可以通过配置ngx_http_referer_module模块来实现防盗链。以下是一个简单的示例,说明如何使用Nginx配置实现防盗链:
打开Nginx配置文件。通常位于/etc/nginx/nginx.conf或/etc/nginx/sites-available/your_domain.conf。
在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状态码,并停止处理后续配置。保存配置文件并退出。
重新加载Nginx以应用更改:
sudo nginx -t # 检查配置文件语法是否正确
sudo nginx -s reload # 重新加载配置文件
现在,Nginx将根据配置实现防盗链功能。如果用户尝试从未经授权的域名访问受保护的资源,他们将收到403 Forbidden错误。