图片防盗🚫流量保护——LNMP环境下防止图片被盗用

在使用服务器或VPS搭建网站时,流量资源往往是有限的。尤其对于图片较多的网站来说,图片文件通常会成为流量消耗的大头。如果这些图片被其他网站盗链,不仅会导致带宽资源浪费,还可能影响网站的正常访问速度。因此,有必要采取措施防止图片被恶意盗用。

以LNMP(Linux + Nginx + MySQL + PHP)环境为例,可以通过Nginx配置来有效阻止他人盗链你的站点图片。下面介绍一种简单实用的方法:

首先,在你的网站Nginx配置文件中,为需要保护的server段添加如下内容:

server {
    listen       80;
    server_name  demo.neoease.com;
    index        index.html index.htm index.php;
    root         /var/www/demo_neoease_com;

    # 为常见图片格式设置缓存过期时间,并限制引用来源
    location ~ .*\.(ico|jpg|jpeg|png|gif)$ {
        expires 1y;   # 图片缓存一年,提高加载效率
        valid_referers none blocked demo.neoease.com *.google.com *.baidu.com; 
        if ($invalid_referer) {
            return 404;   # 非法引用直接返回404错误
        }
    }

    log_format demo.neoease.com '$remote_addr - $remote_user [$time_local] $request'
                               '$status $body_bytes_sent $http_referer '
                               '$http_user_agent $http_x_forwarded_for';
                               
    access_log  /var/log/demo.neoease.com.log demo.neoease.com;
}

上述配置实现了以下几个功能:

  • 对.ico、.jpg、.jpeg、.png和.gif等常见图片类型设置了一年的浏览器缓存时间,这样可以减少重复请求,节省带宽。
  • 使用valid_referers指令,仅允许本站、本地访问以及Google和百度搜索引擎抓取相关图片。如果有其他来源尝试引用,则通过判断$invalid_referer变量直接返回404错误,从而有效杜绝盗链行为。
  • 配置了详细的日志格式与存储路径,便于后续分析访问情况。

这种方法不仅能够大幅度降低因外部盗链造成的不必要流量损失,还能提升用户体验和服务器性能。实际应用时,可根据自身需求调整允许引用的域名列表及缓存策略。

信息参考来源:国外主机测评

图片防盗🚫流量保护——LNMP环境下防止图片被盗用