在使用服务器或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错误,从而有效杜绝盗链行为。 - 配置了详细的日志格式与存储路径,便于后续分析访问情况。
这种方法不仅能够大幅度降低因外部盗链造成的不必要流量损失,还能提升用户体验和服务器性能。实际应用时,可根据自身需求调整允许引用的域名列表及缓存策略。
信息参考来源:国外主机测评