centos

CentOS中Nginx如何实现防盗链

小樊
42
2025-08-22 19:03:46
栏目: 智能运维

在CentOS系统中,使用Nginx实现防盗链可以通过配置Nginx的ngx_http_referer_module模块来完成。这个模块允许你根据HTTP请求头中的Referer字段来控制访问权限。以下是实现防盗链的步骤:

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

    sudo vi /etc/nginx/nginx.conf
    
  2. 添加防盗链配置: 在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状态码。
  3. 重启Nginx服务: 保存配置文件并重启Nginx服务以使配置生效。

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

    curl -I http://example.com/your-image.jpg --header "Referer: http://allowed-domain.com"
    

    如果Referer是允许的域名,你应该会看到正常的HTTP响应头。如果Referer不在允许的列表中,你会看到403 Forbidden状态码。

通过以上步骤,你可以在CentOS系统中使用Nginx实现防盗链功能。根据你的具体需求,你可以调整valid_referers指令中的域名列表和正则表达式。

0
看了该问题的人还看了