配置Nginx防盗链主要是通过设置HTTP请求头中的Referer字段来实现的。以下是一个基本的步骤指南,帮助你配置Nginx防盗链:
打开Nginx配置文件:
通常,Nginx的主配置文件位于/etc/nginx/nginx.conf,但防盗链的配置通常放在网站的虚拟主机配置文件中,例如/etc/nginx/sites-available/yourdomain.com。
编辑虚拟主机配置文件:
使用你喜欢的文本编辑器(如vim、nano等)打开虚拟主机配置文件。
sudo nano /etc/nginx/sites-available/yourdomain.com
添加防盗链配置:
在server块中添加以下配置:
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是一个变量,如果Referer不在允许列表中,该变量的值为true。if ($invalid_referer)块用于检查Referer是否有效,如果无效则返回403 Forbidden状态码。保存并退出编辑器:
按Ctrl+X退出nano,然后按Y确认保存,最后按Enter退出。
测试Nginx配置: 在重新加载Nginx之前,先测试配置文件是否有语法错误。
sudo nginx -t
如果配置文件没有问题,你会看到类似以下的输出:
nginx: configuration file /etc/nginx/nginx.conf test is successful
重新加载Nginx: 使配置生效,重新加载Nginx服务。
sudo systemctl reload nginx
或者如果你使用的是较旧的系统初始化系统,可以使用:
sudo service nginx reload
完成以上步骤后,Nginx就会根据配置的防盗链规则来阻止非法引用。你可以根据需要调整valid_referers指令中的域名列表和其他参数。