wasmtime

Директива 'wasmtime' используется для определения и управления модулями WebAssembly в конфигурации NGINX для расширения его возможностей.

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

Описание

Директива 'wasmtime' позволяет NGINX взаимодействовать с модулями WebAssembly (Wasm), давая разработчикам возможность расширять функциональность NGINX с помощью собственных реализаций, написанных на языках программирования, компилируемых в Wasm, таких как Rust или Go. Это взаимодействие достигается через Proxy-Wasm ABI, который NGINX использует для загрузки и выполнения Wasm-модулей во время выполнения. Сама директива не принимает аргументов, но обычно используется вместе с другими директивами для настройки окружения WebAssembly для экземпляров NGINX.

При использовании директивы 'wasmtime' она инициирует новый блок конфигурации верхнего уровня для Wasm-модулей. Внутри этого блока разработчики определяют отдельные модули, которые могут использоваться как фильтры или вспомогательные функции на различных этапах обработки запросов. Такая модульность позволяет динамически применять сложную логику непосредственно в пути обработки данных сервера, расширяя его возможности за пределы традиционных конфигураций. Например, разработчик может указать Wasm-модуль, реализующий специализированную аутентификацию, ограничение скорости или даже преобразование данных. Кроме того, worker-процессы NGINX могут каждый инстанцировать указанные Wasm-модули, обеспечивая параллельную обработку и высокую пропускную способность.

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

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

Убедитесь, что Wasm-бинарный файл корректно скомпилирован и совместим с Proxy-Wasm ABI.

Путь к Wasm-модулю должен быть доступен для NGINX и иметь соответствующие права доступа.

Будьте осторожны с ограничениями ресурсов, так как выполнение Wasm может повлиять на производительность NGINX, если они будут неправильно настроены.

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