在Ubuntu上使用Nginx實現防盜鏈功能,可以通過配置Nginx的ngx_http_referer_module
模塊來完成。這個模塊允許你根據HTTP請求頭中的Referer
字段來控制訪問權限。以下是具體步驟:
安裝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$; # 允許的Referer
if ($invalid_referer) {
return 403; # 返回403 Forbidden
}
root /var/www/html; # 替換為你的網站根目錄
index index.html index.htm;
}
}
解釋:
valid_referers
指令用于指定允許的Referer。none
表示不允許任何Referer,blocked
表示阻止所有Referer,server_names
表示允許的域名列表,~\.example\.com$
表示允許的域名模式。if ($invalid_referer)
用于檢查Referer是否有效,如果無效則返回403 Forbidden狀態碼。測試配置: 在保存并退出編輯器后,測試Nginx配置是否正確:
sudo nginx -t
如果配置正確,你會看到類似以下的輸出:
nginx: configuration file /etc/nginx/nginx.conf test is successful
重新加載Nginx: 使配置生效,重新加載Nginx:
sudo systemctl reload nginx
現在,你的Nginx服務器已經配置了防盜鏈功能。當用戶嘗試訪問你的網站資源時,如果Referer不在允許的列表中,將會收到403 Forbidden響應。