在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; # 替换为你的域名或IP地址
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: 如果配置测试通过,重新加载Nginx以应用更改:
sudo systemctl reload nginx
通过以上步骤,你就可以在Ubuntu中使用Nginx实现防盗链功能。请根据你的实际需求调整配置中的域名和路径。