ndk

Development kit required by other modules

dynamic moduleBSD-3-Clausesource

Overview

The nginx development kit (NDK) extends the nginx core with extra APIs for module authors. It is a support module: it adds functions, macros, and build helpers that other third-party modules call, and it exposes no end-user features of its own.

Modules such as lua-nginx-module, set-misc, encrypted-session, and form-input are built against NDK and need it loaded first. On this repository that means keeping the load_module line for ndk_http_module.so ahead of the modules that depend on it.

You install and load NDK only because another module requires it. It needs no configuration beyond the load_module line.

Key directives

set_var submoduleLets modules register C functions as nginx variable setters, the mechanism behind directives like set_by_lua and set_md5.
Configuration settersExtra conf_set functions for regexes, complex values, script values, and paths that reduce boilerplate in module code.
Utility macrosHelper macros for common tasks such as null checks and array handling in module source.
ngx_auto_lib_coreA generic handler that helps module build scripts find and link external libraries.
Dependency for popular modulesRequired at load time by lua-nginx-module, set-misc-nginx-module, encrypted-session, form-input, iconv, and array-var.

Example

nginx.conf
# NDK has no directives of its own. Load it before any module # that depends on it, such as lua-nginx-module. load_module modules/ndk_http_module.so; load_module modules/ngx_http_lua_module.so; http { server { listen 80; location / { content_by_lua_block { ngx.say("NDK is loaded as a dependency") } } } }

Availability

Ships as a dynamic module in libnginx-mod-http-ndk, installed automatically with nginx-extras. The package drops a load_module config into /etc/nginx/modules-enabled/, so it loads on start.