温馨提示×

centos nginx防盗链实施

小樊
41
2025-06-26 12:50:20
栏目: 智能运维

在CentOS上使用Nginx实施防盗链,可以通过配置Nginx的ngx_http_referer_module模块来实现。以下是详细的步骤:

1. 安装Nginx

如果你还没有安装Nginx,可以使用以下命令进行安装:

sudo yum install epel-release sudo yum install nginx 

2. 配置防盗链

编辑Nginx的配置文件,通常位于/etc/nginx/nginx.conf/etc/nginx/conf.d/default.conf

示例配置

server { listen 80; server_name example.com; location /protected/ { valid_referers none blocked server_names example.com www.example.com; if ($invalid_referer) { return 403 "Forbidden"; } root /var/www/html; try_files $uri $uri/ =404; } location / { root /var/www/html; try_files $uri $uri/ =404; } } 

解释

  • valid_referers none blocked server_names example.com www.example.com;:指定允许的引用来源。none表示不允许任何引用,blocked表示阻止的引用,server_names表示允许的域名。
  • if ($invalid_referer) { return 403 "Forbidden"; }:如果引用来源无效,则返回403 Forbidden状态码。
  • root /var/www/html;:指定网站文件的根目录。
  • try_files $uri $uri/ =404;:尝试匹配请求的文件,如果不存在则返回404错误。

3. 重启Nginx

保存配置文件后,重启Nginx以应用更改:

sudo systemctl restart nginx 

4. 测试防盗链

你可以使用浏览器或命令行工具(如curl)来测试防盗链配置是否生效。

使用浏览器测试

访问http://example.com/protected/yourfile.jpg,如果引用来源不在允许列表中,浏览器将显示403 Forbidden。

使用curl测试

curl -I http://example.com/protected/yourfile.jpg 

如果引用来源无效,响应头将包含HTTP/1.1 403 Forbidden

注意事项

  • 确保你的Nginx版本支持ngx_http_referer_module模块。
  • 如果你有子域名或其他域名需要访问,可以在valid_referers指令中添加这些域名。
  • 防盗链配置可能会影响正常用户的访问,确保配置正确后再进行测试。

通过以上步骤,你可以在CentOS上使用Nginx实施防盗链,保护你的网站资源不被非法引用。

0