在Ubuntu上使用Nginx实现防盗链功能,可以通过配置Nginx的ngx_http_referer_module模块来完成。这个模块允许你根据HTTP请求头中的Referer字段来控制访问权限。以下是具体步骤:
安装Nginx(如果尚未安装):
sudo apt update
sudo apt install nginx
编辑Nginx配置文件:
打开Nginx的主配置文件,通常位于/etc/nginx/nginx.conf或/etc/nginx/sites-available/default。
sudo nano /etc/nginx/sites-available/default
添加防盗链配置:
在server块中添加以下配置:
server {
listen 80;
server_name example.com; # 替换为你的域名
location / {
valid_referers none blocked server_names ~\.example\.com$; # 允许的Referer
if ($invalid_referer) {
return 403; # 返回403 Forbidden
}
root /var/www/html; # 替换为你的网站根目录
index index.html index.htm;
}
}
解释:
valid_referers指令用于指定允许的Referer。none表示不允许任何Referer,blocked表示阻止所有Referer,server_names表示允许的域名列表,~\.example\.com$表示允许的域名模式。if ($invalid_referer)用于检查Referer是否有效,如果无效则返回403 Forbidden状态码。测试配置: 在保存并退出编辑器后,测试Nginx配置是否正确:
sudo nginx -t
如果配置正确,你会看到类似以下的输出:
nginx: configuration file /etc/nginx/nginx.conf test is successful
重新加载Nginx: 使配置生效,重新加载Nginx:
sudo systemctl reload nginx
现在,你的Nginx服务器已经配置了防盗链功能。当用户尝试访问你的网站资源时,如果Referer不在允许的列表中,将会收到403 Forbidden响应。