Nginx中自帶GeoIP模塊可以屏蔽指定IP的請(qǐng)求,只不過(guò)默認(rèn)沒(méi)有被編譯,打開(kāi)以后我們只要再下載一個(gè)IP規(guī)則就行,Nginx服務(wù)器中配置GeoIP模塊來(lái)攔截指定國(guó)家IP。 ( 推薦學(xué)習(xí):nginx使用 )
最近有一個(gè)網(wǎng)站項(xiàng)目需求:需要屏蔽國(guó)內(nèi)的方問(wèn)請(qǐng)求?;〞r(shí)間研究了一下這方面的資料。目前找到的最佳方法就是使用 Nginx 的 GeoIP 模塊來(lái)實(shí)現(xiàn)地區(qū)的識(shí)別。然后配置相關(guān)國(guó)家的 ISO 名稱(chēng),禁止訪問(wèn)即可。記錄一下相關(guān)過(guò)程。
編譯 GeoIP 組件
maxmind 提供的免費(fèi)版數(shù)據(jù)庫(kù)已經(jīng)可以滿足需求,在使用數(shù)據(jù)庫(kù)前,需要先編譯 GeoIP 組件:
wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP-1.4.8.tar.gz ./configure make make install
下載 IP 庫(kù)
從 maxmind 下載 IP 數(shù)據(jù)包并解壓。 這個(gè)是國(guó)家的ip數(shù)據(jù)包:
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz gunzip GeoIP.dat.gz
這個(gè)是城市的ip數(shù)據(jù)包:
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz gunzip GeoLiteCity.dat.gz
執(zhí)行完上面的命令后,會(huì)得到 GeoIP.dat 和 GeoLiteCity.dat 文件。將這兩個(gè)文件復(fù)制到 Nginx 的 conf 目錄。