溫馨提示×

如何在Debian上配置Nginx的防盜鏈

小樊
38
2025-06-24 20:52:26
欄目: 智能運維

在Debian上配置Nginx的防盜鏈可以通過修改Nginx的配置文件來實現。防盜鏈的目的是防止其他網站直接鏈接到你的服務器上的資源(如圖片、視頻等),從而節省帶寬并保護你的資源。以下是詳細的步驟:

1. 安裝Nginx

如果你還沒有安裝Nginx,可以使用以下命令進行安裝:

sudo apt update
sudo apt install nginx

2. 修改Nginx配置文件

Nginx的配置文件通常位于 /etc/nginx/nginx.conf/etc/nginx/sites-available/default。你可以編輯這些文件來添加防盜鏈規則。

方法一:使用 valid_referers 指令

server 塊或 location 塊中添加以下配置:

server {
    listen 80;
    server_name example.com;

    location /protected/ {
        valid_referers none blocked server_names example.com www.example.com;
        if ($invalid_referer) {
            return 403;
        }
        root /var/www/html;
    }
}

在這個例子中:

  • valid_referers 指令指定了允許的引用來源。
  • none 表示不允許任何引用。
  • blocked 表示允許被Nginx阻止的引用。
  • server_names 表示允許的域名。
  • 如果引用無效,返回403 Forbidden狀態碼。

方法二:使用 ngx_http_referer_module 模塊

如果你需要更復雜的防盜鏈邏輯,可以使用 ngx_http_referer_module 模塊。這個模塊允許你更靈活地控制引用來源。

首先,確保你的Nginx編譯時包含了 ngx_http_referer_module 模塊。然后,在配置文件中添加以下內容:

server {
    listen 80;
    server_name example.com;

    location /protected/ {
        if ($http_referer !~* "example.com|www.example.com") {
            return 403;
        }
        root /var/www/html;
    }
}

在這個例子中:

  • $http_referer 變量包含了HTTP請求頭中的 Referer 字段。
  • 使用正則表達式檢查 Referer 是否匹配允許的域名。

3. 測試配置并重啟Nginx

在修改配置文件后,使用以下命令測試配置是否正確:

sudo nginx -t

如果配置正確,使用以下命令重啟Nginx以應用更改:

sudo systemctl restart nginx

4. 驗證防盜鏈效果

你可以通過以下方式驗證防盜鏈是否生效:

  • 嘗試從允許的域名訪問資源。
  • 嘗試從不允許的域名訪問資源,應該會返回403 Forbidden狀態碼。

通過以上步驟,你可以在Debian上成功配置Nginx的防盜鏈功能。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女