NGINX Plus is a powerful platform for delivering high-performance web applications. Part of the strength of our application delivery platform comes from the large community of developers contributing new features and functionality through our open source base. New features developed by the community are available as modules that can be dynamically plugged into a running NGINX Plus instance.

For example, with community-contributed (and NGINX-authored) modules you can locate users by their IP address and send them to language-specific sites, resize images to save bandwidth, and embed Lua scripting (allowing complex routing and security operations).

NGINX, Inc. maintains a repository of third-party modules that are fully tested and certified for correct interoperation with NGINX Plus. When you load a module to dynamically plug it into a running NGINX instance, you can be confident knowing that both NGINX Plus and your selected modules are fully supported by the NGINX team. A full list of certified NGINX Plus modules is available.

Third-party and custom modules not in the above list can also be compiled and dynamically loaded into a running NGINX Plus instance. For more detail on how to do this, please see this blog post.

NGINX Plus allows features to be plugged in on demand
Features can be plugged in on demand to NGINX Plus

Developers are encouraged to use our documentation on extending NGINX to write their own modules. The documentation includes our published API along with examples.

Getting Started

You can access the modules in the NGINX Plus repository using standard package management tools such as apt and yum. You load each installed module into NGINX Plus with a simple configuration directive, as shown in the instructions below.

The instructions assume you have configured your package management tool to retrieve packages from the NGINX Plus repository rather than the OS vendor’s distribution.

  1. Install the base nginx-plus image and the modules you want to load dynamically (repeat the installation command for each module). The following commands are appropriate for Debian-based systems.
    # apt-get update
    # apt-get install nginx-plus
    # apt-get install module-name

    Notes:

    • If you are using the nginx-plus-extras package for an earlier release of NGINX Plus, you must remove it before installing the nginx-plus package for Release 9 or later. For Debian-based systems, the appropriate set of commands is:

      # apt-get update
      # apt-get remove nginx-plus-extras
      # apt-get install nginx-plus
      # apt-get install module-name
    • Some modules are not available for certain OS versions because of OS limitations. For details, see the NGINX Plus Technical Specifications.

  2. In the main (top-level) context in /etc/nginx/nginx.conf, add a load_module directive for each dynamically loadable module:

    load_module modules/module-name.so;
  3. Check the new configuration for syntactic validity and reload NGINX Plus.

    # nginx -t && nginx -s reload

    The modules listed in nginx.conf are dynamically loaded into NGINX Plus.