centos

centos nginx防盗链方法

小樊
49
2025-05-21 01:30:00
栏目: 智能运维

在CentOS上配置Nginx防盗链,可以通过以下几种方法实现:

方法一:使用valid_referers指令

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

    sudo vi /etc/nginx/nginx.conf
    
  2. 添加防盗链配置: 在server块中添加valid_referers指令。例如:

    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;
            }
            # 其他配置...
        }
    }
    

    这里的valid_referers指令指定了允许的引用来源。none表示不允许任何引用,blocked表示允许被Nginx阻止的引用,server_names表示允许的域名。

  3. 重启Nginx: 保存配置文件并重启Nginx以应用更改。

    sudo systemctl restart nginx
    

方法二:使用ngx_http_referer_module模块

  1. 确保模块已加载: 确保Nginx已经编译并加载了ngx_http_referer_module模块。可以通过以下命令检查:

    nginx -V 2>&1 | grep --color=auto referer
    

    如果输出中包含--with-http_referer_module,则表示模块已加载。

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

    sudo vi /etc/nginx/nginx.conf
    
  3. 添加防盗链配置: 在server块中添加valid_referers指令。例如:

    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;
            }
            # 其他配置...
        }
    }
    
  4. 重启Nginx: 保存配置文件并重启Nginx以应用更改。

    sudo systemctl restart nginx
    

方法三:使用第三方模块

如果上述方法不能满足需求,可以考虑使用第三方模块,如ngx_http_xss_clean_modulengx_http_security_module,这些模块提供了更高级的安全功能,包括防盗链。

注意事项

通过以上方法,可以在CentOS上配置Nginx防盗链,保护网站资源不被非法引用和下载。

0
看了该问题的人还看了