module

Директива module определяет WebAssembly-модули, используемые внутри NGINX, что позволяет выполнять пользовательскую бизнес-логику в конвейере обработки NGINX.

Синтаксисmodule name path.to.module.{wasm|wat};
По умолчаниюnone
Контекст
Аргументы2-3

Описание

Директива module используется внутри блока wasm в NGINX и указывает на включение WebAssembly-модулей, расширяющих функциональность NGINX. Каждое использование этой директивы задаёт уникальное имя, за которым следует путь к бинарному файлу WebAssembly (.wasm) или к текстовому файлу (.wat). При запуске сервера NGINX указанный модуль компилируется и инстанцируется, становясь доступным для использования в proxy-фильтрации или на других стадиях обработки запроса.

Первый аргумент — это name, который служит идентификатором ссылки на модуль в конфигурации NGINX. Второй аргумент — это путь к файлу WebAssembly, необходимому для загрузки модуля. Необязательный третий аргумент может указывать дополнительные опции, но используется реже. После успешной загрузки эти модули могут реализовывать конкретные функции или логику, определённую кодом WebAssembly, расширяя возможности сервера NGINX, например управление трафиком, преобразование данных или пользовательское логирование.

Крайне важно убедиться, что указанные пути корректны и что модуль WebAssembly не нарушает ожидаемый ABI (Application Binary Interface) стандарта Proxy-Wasm, поскольку это может привести к ошибкам во время выполнения или некорректному поведению NGINX при работе.

Пример конфига

wasm {
    module my_filter /path/to/my_filter.wasm;
    module my_module /path/to/my_module.wat;
}

Убедитесь, что путь к файлу WebAssembly указан правильно и доступен пользователю NGINX.

Модули должны соответствовать Proxy-Wasm ABI, чтобы предотвратить ошибки во время выполнения.

При отладке убедитесь, что вы используете сборку NGINX с включенной поддержкой отладки.

← Ко всем директивам