在Ubuntu系统中使用Nginx实现防盗链,可以通过配置Nginx的ngx_http_referer_module
模块来完成。以下是详细的步骤:
如果你还没有安装Nginx,可以使用以下命令进行安装:
sudo apt update
sudo apt install nginx
编辑Nginx的配置文件,通常位于/etc/nginx/nginx.conf
或/etc/nginx/sites-available/default
。你可以创建一个新的配置文件或直接修改现有的配置文件。
假设你的网站域名是example.com
,并且你希望保护位于/var/www/html/images/
目录下的图片文件。
server {
listen 80;
server_name example.com;
location /images/ {
# 允许的引用页
valid_referers none blocked server_names example.com *.example.com;
# 如果引用页不合法,则返回403 Forbidden
if ($invalid_referer) {
return 403;
}
# 其他配置,如缓存、压缩等
expires 30d;
add_header Cache-Control "public";
}
# 其他location配置
location / {
root /var/www/html;
index index.html index.htm;
}
}
valid_referers
指令用于指定允许的引用页。在这个例子中,允许的引用页包括:
none
:没有引用页。blocked
:被Nginx阻止的引用页。server_names example.com *.example.com
:允许的域名列表。if ($invalid_referer)
指令用于检查引用页是否合法。如果不合法,则返回403 Forbidden状态码。expires
和add_header
指令用于设置缓存和添加HTTP头信息。在保存配置文件后,使用以下命令测试Nginx配置是否正确:
sudo nginx -t
如果配置正确,你会看到类似以下的输出:
nginx: configuration file /etc/nginx/nginx.conf test is successful
最后,重新加载Nginx以应用新的配置:
sudo systemctl reload nginx
你可以尝试从一个不允许的域名访问受保护的图片文件,应该会看到403 Forbidden错误。
通过以上步骤,你就可以在Ubuntu系统中使用Nginx实现防盗链功能了。