在Debian下,使用Nginx实现防盗链可以通过配置Nginx的ngx_http_referer_module
模块来完成。以下是具体的步骤:
-
安装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$; # 允许的域名 if ($invalid_referer) { return 403; # 返回403 Forbidden } root /var/www/html; # 替换为你的网站根目录 index index.html index.htm; } }
解释:
valid_referers
指令用于指定允许的引用来源。none
表示不允许任何引用,blocked
表示阻止的引用,server_names
表示允许的服务器域名,~\.example\.com$
表示允许的域名(例如example.com
)。if ($invalid_referer)
用于检查引用是否有效,如果无效则返回403 Forbidden。
-
保存并退出编辑器: 按
Ctrl + X
,然后按Y
确认保存,最后按Enter
退出。 -
测试Nginx配置: 在重新加载Nginx之前,先测试配置文件是否有语法错误:
sudo nginx -t
如果配置文件没有问题,你会看到类似以下的输出:
nginx: configuration file /etc/nginx/nginx.conf test is successful
-
重新加载Nginx: 使配置生效:
sudo systemctl reload nginx
现在,Nginx将根据配置的防盗链规则来限制访问。只有来自允许域名的请求才能访问你的网站资源,其他来源的请求将被拒绝并返回403 Forbidden状态码。