ngx_http_geoip_module 模組

範例設定
指令
     geoip_country
     geoip_city
     geoip_org
     geoip_proxy
     geoip_proxy_recursive

ngx_http_geoip_module 模組 (0.8.6+) 使用預先編譯的 MaxMind 資料庫,根據客戶端的 IP 位址建立帶有值的變數。

當使用支援 IPv6 的資料庫 (1.3.12, 1.2.7) 時,IPv4 位址會以 IPv4 對應的 IPv6 位址進行查詢。

此模組預設不建置,應使用 --with-http_geoip_module 組態參數啟用。

此模組需要 MaxMind GeoIP 函式庫。

範例設定

http {
    geoip_country         GeoIP.dat;
    geoip_city            GeoLiteCity.dat;
    geoip_proxy           192.168.100.0/24;
    geoip_proxy           2001:0db8::/32;
    geoip_proxy_recursive on;
    ...

指令

語法 geoip_country 檔案;
預設
內容 http

指定一個資料庫,用於根據客戶端的 IP 位址判斷國家/地區。使用此資料庫時,可以使用以下變數

$geoip_country_code
兩個字母的國家/地區代碼,例如,“RU”、“US”。
$geoip_country_code3
三個字母的國家/地區代碼,例如,“RUS”、“USA”。
$geoip_country_name
國家/地區名稱,例如,“俄羅斯聯邦”、“美國”。

語法 geoip_city 檔案;
預設
內容 http

指定一個資料庫,用於根據客戶端的 IP 位址判斷國家/地區、地區和城市。使用此資料庫時,可以使用以下變數

$geoip_area_code
電話區號(僅限美國)。
由於相應的資料庫欄位已棄用,因此此變數可能包含過時的資訊。
$geoip_city_continent_code
兩個字母的洲代碼,例如,“EU”、“NA”。
$geoip_city_country_code
兩個字母的國家/地區代碼,例如,“RU”、“US”。
$geoip_city_country_code3
三個字母的國家/地區代碼,例如,“RUS”、“USA”。
$geoip_city_country_name
國家/地區名稱,例如,“俄羅斯聯邦”、“美國”。
$geoip_dma_code
美國的 DMA 地區代碼(也稱為「都會區代碼」),根據 Google AdWords API 中的地理目標設定
$geoip_latitude
緯度。
$geoip_longitude
經度。
$geoip_region
兩個符號的國家/地區代碼(地區、領土、州、省、聯邦土地等),例如,“48”、“DC”。
$geoip_region_name
國家/地區名稱(地區、領土、州、省、聯邦土地等),例如,“莫斯科市”、“哥倫比亞特區”。
$geoip_city
城市名稱,例如,“莫斯科”、“華盛頓”。
$geoip_postal_code
郵遞區號。

語法 geoip_org 檔案;
預設
內容 http

此指令出現在 1.0.3 版中。

指定一個資料庫,用於根據客戶端的 IP 位址判斷組織。使用此資料庫時,可以使用以下變數

$geoip_org
組織名稱,例如,“墨爾本大學”。

語法 geoip_proxy 位址 | CIDR;
預設
內容 http

此指令出現在 1.3.0 版和 1.2.1 版中。

定義信任的位址。當請求來自信任的位址時,將改用「X-Forwarded-For」請求標頭欄位中的位址。

語法 geoip_proxy_recursive on | off;
預設
geoip_proxy_recursive off;
內容 http

此指令出現在 1.3.0 版和 1.2.1 版中。

如果停用遞迴搜尋,則會使用在「X-Forwarded-For」中傳送的最後一個位址,而不是符合其中一個信任位址的原始客戶端位址。如果啟用遞迴搜尋,則會使用在「X-Forwarded-For」中傳送的最後一個非信任位址,而不是符合其中一個信任位址的原始客戶端位址。