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 |
---|---|
預設 | — |
內容 |
http |
此指令出現在 1.3.0 版和 1.2.1 版中。
定義信任的位址。當請求來自信任的位址時,將改用「X-Forwarded-For」請求標頭欄位中的位址。
語法 |
geoip_proxy_recursive |
---|---|
預設 |
geoip_proxy_recursive off; |
內容 |
http |
此指令出現在 1.3.0 版和 1.2.1 版中。
如果停用遞迴搜尋,則會使用在「X-Forwarded-For」中傳送的最後一個位址,而不是符合其中一個信任位址的原始客戶端位址。如果啟用遞迴搜尋,則會使用在「X-Forwarded-For」中傳送的最後一個非信任位址,而不是符合其中一個信任位址的原始客戶端位址。