在Debian下,使用Nginx實現防盜鏈可以通過配置Nginx的ngx_http_referer_module
模塊來完成。以下是具體的步驟:
安裝Nginx(如果尚未安裝):
sudo apt update
sudo apt install nginx
編輯Nginx配置文件:
打開Nginx的主配置文件,通常位于/etc/nginx/nginx.conf
或/etc/nginx/sites-available/default
。
sudo nano /etc/nginx/sites-available/default
添加防盜鏈配置:
在server
塊中添加以下配置,以限制特定域名的訪問:
server {
listen 80;
server_name example.com; # 替換為你的域名
location / {
valid_referers none blocked server_names ~\.example\.com$; # 允許的域名
if ($invalid_referer) {
return 403; # 返回403 Forbidden
}
root /var/www/html; # 替換為你的網站根目錄
index index.html index.htm;
}
}
解釋:
valid_referers
指令用于指定允許的引用來源。none
表示不允許任何引用,blocked
表示阻止的引用,server_names
表示允許的服務器域名,~\.example\.com$
表示允許的域名(例如example.com
)。if ($invalid_referer)
用于檢查引用是否有效,如果無效則返回403 Forbidden。保存并退出編輯器:
按Ctrl + X
,然后按Y
確認保存,最后按Enter
退出。
測試Nginx配置: 在重新加載Nginx之前,先測試配置文件是否有語法錯誤:
sudo nginx -t
如果配置文件沒有問題,你會看到類似以下的輸出:
nginx: configuration file /etc/nginx/nginx.conf test is successful
重新加載Nginx: 使配置生效:
sudo systemctl reload nginx
現在,Nginx將根據配置的防盜鏈規則來限制訪問。只有來自允許域名的請求才能訪問你的網站資源,其他來源的請求將被拒絕并返回403 Forbidden狀態碼。