http_geoip
module#
Creates variables with values depending on the client IP address, using the precompiled MaxMind databases.
When using the databases with IPv6 support, IPv4 addresses are looked up as IPv4-mapped IPv6 addresses.
When building from the source code,
this module isn’t built by default;
it should be enabled with the
‑‑with‑http_geoip_module
build option.
Important
This module requires the MaxMind GeoIP library.
Example Configuration#
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;
...
Directives#
geoip_country#
- Syntax:
geoip_country
file;- Default:
—
- Context:
http
Specifies a database used to determine the country depending on the client IP address. The following variables are available when using this database:
|
two-letter country code, for example, “RU”, “US”. |
|
three-letter country code, for example, “RUS”, “USA”. |
|
country name, for example, “Russian Federation”, “United States”. |
geoip_city#
- Syntax:
geoip_city
file;- Default:
—
- Context:
http
Specifies a database used to determine the country, region, and city depending on the client IP address. The following variables are available when using this database:
|
two-letter continent code, for example, “EU”, “NA”. |
|
two-letter country code, for example, “RU”, “US”. |
|
three-letter country code, for example, “RUS”, “USA”. |
|
country name, for example, “Russian Federation”, “United States”. |
|
DMA region code in US (also known as “metro code”), according to the geotargeting in Google AdWords API. |
|
latitude. |
|
longitude. |
|
two-symbol country region code (region, territory, state, province, federal land and the like), for example, “48”, “DC”. |
|
country region name (region, territory, state, province, federal land and the like), for example, “Moscow City”, “District of Columbia”. |
|
city name, for example, “Moscow”, “Washington”. |
|
postal code. |
geoip_org#
- Syntax:
geoip_org
file;- Default:
—
- Context:
http
Specifies a database used to determine the organization depending on the client IP address. The following variable is available when using this database:
|
organization name, for example, “The University of Melbourne”. |
geoip_proxy#
- Syntax:
geoip_proxy
file;- Default:
—
- Context:
http
Defines trusted addresses. When a request comes from a trusted address, an address from the “X-Forwarded-For” request header field will be used instead.
geoip_proxy_recursive#
- Syntax:
geoip_proxy_recursive
on | off;- Default:
geoip_proxy_recursive off;
- Context:
http
If recursive search is disabled then instead of the original client address that matches one of the trusted addresses, the last address sent in “X-Forwarded-For” will be used. If recursive search is enabled then instead of the original client address that matches one of the trusted addresses, the last non-trusted address sent in “X-Forwarded-For” will be used.