centos

如何在CentOS上配置防盗链

小樊
36
2025-06-14 09:11:34
栏目: 智能运维

在CentOS上配置防盗链,通常是指使用Nginx或Apache等Web服务器来限制其他网站直接链接到你的资源(如图片、视频、CSS文件等)。以下是使用Nginx和Apache分别配置防盗链的方法:

使用Nginx配置防盗链

  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 yourdomain.com;
    
        location / {
            root /path/to/your/files;
            valid_referers none blocked yourdomain.com *.yourdomain.com;
            if ($invalid_referer) {
                return 403;
            }
        }
    }
    

    解释:

    • valid_referers指令用于指定允许的引用来源。
    • none表示不允许任何引用。
    • blocked表示允许被阻止的引用。
    • yourdomain.com*.yourdomain.com是允许的域名。
    • if ($invalid_referer)块用于检查引用是否有效,如果无效则返回403 Forbidden状态码。
  3. 重新加载Nginx配置: 保存并退出编辑器后,重新加载Nginx配置以使更改生效。

    sudo nginx -s reload
    

使用Apache配置防盗链

  1. 编辑Apache配置文件: 打开Apache的配置文件,通常位于/etc/httpd/conf/httpd.conf/etc/apache2/apache2.conf

    sudo vi /etc/httpd/conf/httpd.conf
    
  2. 启用必要的模块: 确保启用了mod_rewrite模块。

    sudo a2enmod rewrite
    
  3. 添加防盗链配置: 在需要保护的目录下创建或编辑.htaccess文件,并添加以下配置:

    RewriteEngine On
    RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain.com [NC]
    RewriteCond %{HTTP_REFERER} !^$
    RewriteRule \.(jpg|jpeg|png|gif|css|js)$ - [F,L]
    

    解释:

    • RewriteEngine On启用重写引擎。
    • RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain.com [NC]检查引用来源是否不是你的域名。
    • RewriteCond %{HTTP_REFERER} !^$确保引用来源不为空。
    • RewriteRule \.(jpg|jpeg|png|gif|css|js)$ - [F,L]阻止对这些文件类型的访问,并返回403 Forbidden状态码。
  4. 重新加载Apache配置: 保存并退出编辑器后,重新加载Apache配置以使更改生效。

    sudo systemctl reload httpd
    

通过以上步骤,你可以在CentOS上使用Nginx或Apache配置防盗链,保护你的资源不被其他网站直接链接。

0
看了该问题的人还看了