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 Plus 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 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.
Developers are encouraged to use our documentation on extending NGINX to write their own modules. The documentation includes our published API along with examples.
The NGINX Plus repository includes both dynamic modules authored by NGINX, Inc. and approved modules authored by community contributors. You can access and install them using standard package management tools such as
NGINX Plus Certified Modules are distributed by their authors. To access them, click the module’s entry on the Dynamic Modules page and then the Get Module button.
Configure your package management tool to retrieve packages from the NGINX Plus repository rather than an OS vendor’s distribution.
Install the base nginx‑plus image. These commands are appropriate for Debian‑based systems.
# apt-get update # apt-get install nginx-plus
Install each module you want to load dynamically.
For Certified Modules, follow the vendor’s instructions.
For modules in the NGINX Plus repository, repeat the following command for each module. The name to substitute for
module-nameappears in the installation instructions that you can access by clicking the module’s entry on the Dynamic Modules page. As an example,
nginx-plus-module-njsis the nginScript module.
Note that some modules are not available for certain OS versions because of OS limitations. To display the supported OS versions for a module, click the module’s entry on the Dynamic Modules page.
# apt-get install module-name
In the main (top‑level) context in /etc/nginx/nginx.conf, add a
load_moduledirective for each dynamically loadable module. As shown, the conventional directory for modules is /etc/nginx/modules.
Check the new configuration for syntactic validity and reload NGINX Plus.
# nginx -t && nginx -s reload
The modules listed in
load_moduledirectives in nginx.conf are dynamically loaded into NGINX Plus.