在CentOS系统中,使用Nginx实现防盗链可以通过配置Nginx的ngx_http_referer_module
模块来完成。这个模块允许你根据HTTP请求头中的Referer
字段来控制访问权限。以下是实现防盗链的步骤:
编辑Nginx配置文件:
打开你的Nginx配置文件,通常位于/etc/nginx/nginx.conf
或/etc/nginx/conf.d/default.conf
。
sudo vi /etc/nginx/nginx.conf
添加防盗链配置:
在server
块中添加防盗链配置。以下是一个示例配置:
server {
listen 80;
server_name example.com;
location / {
# 允许的域名列表
valid_referers none blocked server_names ~\.example\.com$ ~\.trusted\.domain\.com$;
if ($invalid_referer) {
return 403 "Forbidden";
}
# 其他配置...
root /var/www/html;
index index.html index.htm;
}
}
在这个配置中:
valid_referers
指令用于指定允许的Referer
值。可以是none
(不检查)、blocked
(阻止的域名)、server_names
(允许的服务器域名)或正则表达式。if ($invalid_referer)
指令用于检查Referer
是否有效,如果无效则返回403 Forbidden状态码。重启Nginx服务: 保存配置文件并重启Nginx服务以使配置生效。
sudo systemctl restart nginx
测试防盗链配置:
你可以使用浏览器或命令行工具(如curl
)来测试防盗链配置是否生效。
curl -I http://example.com/your-image.jpg --header "Referer: http://allowed-domain.com"
如果Referer
是允许的域名,你应该会看到正常的HTTP响应头。如果Referer
不在允许的列表中,你会看到403 Forbidden状态码。
通过以上步骤,你可以在CentOS系统中使用Nginx实现防盗链功能。根据你的具体需求,你可以调整valid_referers
指令中的域名列表和正则表达式。