在Nginx中配置防盗链功能,可以通过检查HTTP请求头中的Referer字段来实现。以下是一个基本的配置示例,展示了如何使用Nginx来防止防盗链:
打开Nginx配置文件,通常位于/etc/nginx/nginx.conf或/etc/nginx/conf.d/default.conf。
在server块中添加以下配置:
server {
listen 80;
server_name example.com; # 替换为你的域名
location / {
valid_referers none blocked server_names ~\.example\.com$; # 允许的Referer
if ($invalid_referer) {
return 403; # 如果Referer无效,返回403 Forbidden
}
# 其他配置,如root、index等
root /var/www/html;
index index.html index.htm;
}
}
在这个配置中:
valid_referers指令用于指定允许的Referer。none表示不允许任何Referer,blocked表示允许被Nginx阻止的Referer,server_names表示允许的域名列表,~\.example\.com$表示允许的域名模式。if ($invalid_referer)指令用于检查Referer是否有效。如果无效,则返回403 Forbidden状态码。sudo nginx -s reload
这样配置后,Nginx会检查每个请求的Referer头,如果Referer不在允许的列表中,则返回403 Forbidden状态码,从而实现防盗链功能。
请注意,防盗链功能并不是绝对安全的,因为Referer头可以被伪造。如果需要更高级的防盗链功能,可以考虑使用其他方法,如签名验证、Token验证等。