GeoIP2

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

Module Info

MaxMind GeoIP2 databases provide contextual data for a comprehensive profile of IP addresses, including geolocation data (region, state, city, postal code) and extra data (ISP, domain, connection type). Basing on these data, NGINX Plus will be able to perform different user differentiation strategies, for example, provide different type of content depending on a country.

Installation

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

  2. Install the GeoIP2 module package nginx-plus-module-geoip2.

    For CentOS, Oracle Linux, and RHEL:

    yum install nginx-plus-module-geoip2
    
    Note:
    the GeoIP2 module cannot be installed on ppc64le version of CentOS, Oracle Linux, and RHEL.

    For Amazon Linux 2023, AlmaLinux, Rocky Linux:

    dnf install nginx-plus-module-geoip2
    

    For Debian and Ubuntu:

    apt-get install nginx-plus-module-geoip2
    

    For Alpine:

    apk add nginx-plus-module-geoip2
    

    For FreeBSD:

    pkg install nginx-plus-module-geoip2
    

Configuration

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

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

    load_module modules/ngx_http_geoip2_module.so;
    load_module modules/ngx_stream_geoip2_module.so;
    
    http {
        # ...
    }
    
  2. Perform additional configuration as required by the module.

  3. Test the configuration and reload NGINX Plus to enable the module:

    nginx -t && nginx -s reload
    

More Info