首頁  >  文章  >  運維  >  Nginx存取限製配置,防止惡意存取和爬蟲攻擊

Nginx存取限製配置,防止惡意存取和爬蟲攻擊

PHPz
PHPz原創
2023-07-04 10:25:122558瀏覽

Nginx存取限製配置,防止惡意存取和爬蟲攻擊

引言:
在當今網路時代,惡意存取和爬蟲攻擊成為了很大的安全威脅。 Nginx作為高效能的網路伺服器和反向代理伺服器,可以透過一些設定進行存取限制,以保護網站免受這些攻擊。本文將介紹一些常用的Nginx存取限製配置,並附帶程式碼範例。

一、IP黑白名單限制

  1. IP黑名單限制
    若要限制某個IP位址的訪問,可以使用Nginx自帶的ngx_http_access_module模組。
http {
    # 创建一个blacklist.conf文件来存储黑名单的IP地址
    include blacklist.conf;
    server {
        location / {
            # 在这里设置黑名单的访问规则
            deny 192.168.1.100;
            deny 192.168.1.0/24;
            deny 10.0.0.0/8;
            # 其他配置...
        }
    }
}

以上設定簡單明了,可以直接在location區塊內使用deny來拒絕指定的IP位址或IP位址段的存取。

  1. IP白名單限制
    與IP黑名單相反,若要只允許某些IP位址存取而拒絕其他IP位址,可以使用allow指令。
http {
    # 创建一个whitelist.conf文件来存储白名单的IP地址
    include whitelist.conf;
    server {
        location / {
            # 在这里设置白名单的访问规则
            allow 192.168.1.100;
            allow 192.168.1.0/24;
            allow 10.0.0.0/8;
            # 最后拒绝所有其他访问
            deny all;
            # 其他配置...
        }
    }
}

以上配置中,使用allow指令允許指定的IP位址或IP位址段的訪問,deny all則會拒絕其他所有IP位址的存取。

二、User-Agent限制
有些爬蟲攻擊會使用假冒的User-Agent進行訪問,因此我們可以透過限制User-Agent來阻止這類攻擊。

http {
    server {
        location / {
            # 在这里设置拒绝某些特定User-Agent的访问
            if ($http_user_agent ~* (curl|wget) ) {
                return 403;
            }
            # 其他配置...
        }
    }
}

以上設定中,使用if指令加上正規表示式,符合到特定的User-Agent,然後使用return指令傳回403 Forbidden。
這樣,使用curl或wget等工具嘗試存取網站的請求將被拒絕。

三、頻率限制
為了防止DDoS攻擊和暴力破解等行為,可以設定存取頻率限制。

http {
    limit_req_zone $binary_remote_addr zone=one:10m rate=2r/s;
    server {
        location / {
            # 在这里设置访问频率限制
            limit_req zone=one burst=10 nodelay;
            # 其他配置...
        }
    }
}

以上配置中,使用limit_req_zone指令建立一個儲存IP位址的記憶體區域,名稱為one,大小為10m,並設定存取頻率為2r/s。接著在location區塊內使用limit_req指令進行頻率限制,burst參數表示存取超額時的緩衝區大小,nodelay表示盡量立即處理請求。

總結:
透過以上的IP黑白名單限制、User-Agent限制和頻率限制的設定範例,我們可以有效地防止惡意存取和爬蟲攻擊。當然,具體的配置還可以根據實際需求進行調整。最後,希望以上內容對您的Nginx存取限製配置能夠有所幫助。

以上是Nginx存取限製配置,防止惡意存取和爬蟲攻擊的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn