在Ubuntu系統中使用Nginx實現防盜鏈,可以通過配置Nginx的ngx_http_referer_module
模塊來完成。以下是詳細的步驟:
如果你還沒有安裝Nginx,可以使用以下命令進行安裝:
sudo apt update
sudo apt install nginx
編輯Nginx的配置文件,通常位于/etc/nginx/nginx.conf
或/etc/nginx/sites-available/default
。你可以創建一個新的配置文件或直接修改現有的配置文件。
假設你的網站域名是example.com
,并且你希望保護位于/var/www/html/images/
目錄下的圖片文件。
server {
listen 80;
server_name example.com;
location /images/ {
# 允許的引用頁
valid_referers none blocked server_names example.com *.example.com;
# 如果引用頁不合法,則返回403 Forbidden
if ($invalid_referer) {
return 403;
}
# 其他配置,如緩存、壓縮等
expires 30d;
add_header Cache-Control "public";
}
# 其他location配置
location / {
root /var/www/html;
index index.html index.htm;
}
}
valid_referers
指令用于指定允許的引用頁。在這個例子中,允許的引用頁包括:
none
:沒有引用頁。blocked
:被Nginx阻止的引用頁。server_names example.com *.example.com
:允許的域名列表。if ($invalid_referer)
指令用于檢查引用頁是否合法。如果不合法,則返回403 Forbidden狀態碼。expires
和add_header
指令用于設置緩存和添加HTTP頭信息。在保存配置文件后,使用以下命令測試Nginx配置是否正確:
sudo nginx -t
如果配置正確,你會看到類似以下的輸出:
nginx: configuration file /etc/nginx/nginx.conf test is successful
最后,重新加載Nginx以應用新的配置:
sudo systemctl reload nginx
你可以嘗試從一個不允許的域名訪問受保護的圖片文件,應該會看到403 Forbidden錯誤。
通過以上步驟,你就可以在Ubuntu系統中使用Nginx實現防盜鏈功能了。