在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錯誤。