proxy_wasm

Директива `proxy_wasm` интегрирует модули WebAssembly в конвейер обработки запросов NGINX.

Синтаксисproxy_wasm module_name [phase];
По умолчаниюnone
Контекстhttp, server, location
Аргументы1-2

Описание

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

Директива proxy_wasm может принимать один или два аргумента. Первый аргумент — имя выполняемого WASM-модуля, а второй аргумент, который является необязательным, может быть использован для указания фазы выполнения, в которой модуль должен быть вызван. Если фаза не указана, используется фаза default. Такая конструкция обеспечивает гибкость и позволяет разработчикам настраивать обработку запросов в соответствии с потребностями конкретного приложения. Жизненный цикл WASM-модуля строго контролируется NGINX, гарантируя, что модули загружаются один раз для каждого worker process, что оптимизирует использование ресурсов.

Кроме того, использование этой директивы в сочетании с другими конфигурациями, такими как wasm_call, может повысить модульность и повторное использование компонентов WebAssembly в конфигурациях NGINX.

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

http {
    server {
        listen 9000;

        location / {
            proxy_wasm my_custom_filter;
            proxy_pass http://upstream;
        }
    }
}

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

Проверьте совместимость модуля WASM с используемой версией NGINX.

Убедитесь, что фазы, в которых работает модуль WASM, соответствуют задуманной логике обработки.

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