在Nginx中设置防盗链,可以通过配置ngx_http_referer_module模块来实现。以下是具体的步骤:
确保你的服务器上已经安装了Nginx。如果没有安装,可以使用以下命令进行安装(以Ubuntu为例):
sudo apt update
sudo apt install nginx
编辑Nginx的配置文件,通常位于/etc/nginx/nginx.conf或/etc/nginx/sites-available/default。
valid_referers指令在server或location块中添加以下配置:
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";
}
# 其他配置
}
}
解释:
valid_referers指令用于指定允许的引用来源。
none:不允许任何引用。blocked:允许被Nginx阻止的引用。server_names:允许指定的域名。$invalid_referer变量会在引用无效时设置为1。if指令和return指令在location块中添加以下配置:
server {
listen 80;
server_name example.com;
location /protected/ {
if ($http_referer !~* "example.com|www.example.com") {
return 403 "Forbidden";
}
# 其他配置
}
}
解释:
$http_referer变量包含HTTP请求头中的Referer字段。!~*是不区分大小写的正则表达式匹配。在修改配置文件后,使用以下命令测试Nginx配置是否正确:
sudo nginx -t
如果配置测试通过,重新加载Nginx以应用更改:
sudo systemctl reload nginx
尝试从不同的域名访问受保护的资源,确保只有来自允许域名的请求能够成功访问。
通过以上步骤,你可以在Nginx中设置防盗链,保护你的资源不被未经授权的网站引用。