在LNMP架构中,Nginx可以通过配置防盗链来限制其他网站直接引用你的图片、视频等资源。防盗链的基本原理是通过检查HTTP请求头中的Referer字段来判断请求是否来自允许的域名。如果Referer不在允许的域名列表中,则拒绝访问。
以下是一个基本的Nginx防盗链配置示例:
打开Nginx配置文件,通常位于/etc/nginx/nginx.conf
或/etc/nginx/sites-available/default
。
在server
块中添加以下配置:
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
valid_referers none blocked yourdomain.com www.yourdomain.com;
if ($invalid_referer) {
rewrite ^/ - [R=403,L];
}
}
解释:
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$
:匹配所有以.jpg
, .jpeg
, .png
, .gif
, .ico
, .css
, .js
结尾的文件请求。valid_referers none blocked yourdomain.com www.yourdomain.com;
:设置允许的Referer。none
表示不允许任何Referer,blocked
表示允许被Nginx阻止的Referer,yourdomain.com
和www.yourdomain.com
是你允许的域名。if ($invalid_referer)
:如果Referer无效,则执行以下操作。rewrite ^/ - [R=403,L]
:将无效Referer的请求重定向到403 Forbidden状态码,并停止处理后续配置。保存配置文件并退出编辑器。
重新加载Nginx配置以使更改生效:
sudo nginx -s reload
现在,Nginx将根据配置的防盗链规则限制资源访问。如果请求的资源被其他网站引用且Referer不在允许的域名列表中,用户将收到403 Forbidden错误。