Skip to content

GeoIP

Capture information from the client IP address in variables, using the MaxMind GeoIP databases, with the GeoIP dynamic module supported by NGINX, Inc.

The GeoIP dynamic module captures information from the client IP address in variables using the MaxMind GeoLite databases.

  1. Check the Technical Specifications page to verify that the module is supported by your operating system.

  2. Make sure that your operating system is configured to retrieve binary packages from the official NGINX Plus repository. See installation instructions for your operating system on the Installing NGINX Plus page.

  3. Install the GeoIP module package nginx-plus-module-geoip from the official NGINX Plus repository.

    For Amazon Linux 2, CentOS, Oracle Linux, and RHEL:

    Terminal window
    sudo yum update && \
    sudo yum install nginx-plus-module-geoip

Only 7.x version of CentOS, Oracle Linux, and RHEL is supported. :::

For Debian and Ubuntu:

Terminal window
sudo apt update && \
sudo apt install nginx-plus-module-geoip

For SLES:

Terminal window
sudo zypper refresh && \
sudo zypper install nginx-plus-module-geoip

For Alpine:

Terminal window
apk add nginx-plus-module-geoip

After installation you will need to enable and configure the module in NGINX Plus configuration file nginx.conf.

  1. Enable dynamic loading of GeoIP modules with the load_module directives specified in the top-level (“main”) context:

    load_module modules/ngx_http_geoip_module.so;
    load_module modules/ngx_stream_geoip_module.so;
    http {
    # ...
    }
    stream {
    # ...
    }
  2. Perform additional configuration as required by the module (HTTP or TCP/UDP).

  3. Test the NGINX Plus configuration. In a terminal, type-in the command:

    Terminal window
    nginx -t

    Expected output of the command:

    Terminal window
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf is successful
  4. Reload the NGINX Plus configuration to enable the module:

    Terminal window
    nginx -s reload