Модуль WASM#
Основной модуль, реализующий базовую функциональность WASM в Angie: он включает поддержку загрузки альтернативных сред выполнения и модулей WASM, а также настройку их функций и ограничений.
Другие модули в этом разделе расширяют данную функциональность, позволяя гибко настраивать и оптимизировать возможности WASM для различных сценариев и требований.
В наших репозиториях модуль собран динамически и
доступен отдельным пакетом angie-module-wasm
.
Пример конфигурации#
# Эти директивы загружают основную функциональность
load_module modules/ngx_wasm_module.so;
load_module modules/ngx_wasm_core_module.so;
load_module modules/ngx_wasmtime_module.so;
# Доступны здесь: https://git.angie.software/web-server/angie-wasm
load_module modules/ngx_http_wasm_host_module.so;
load_module modules/ngx_http_wasm_content_module.so;
load_module modules/ngx_http_wasm_vars_module.so;
events {
}
wasm_modules {
#use wasmtime;
load ngx_http_handler.wasm id=handler;
load ngx_http_vars.wasm id=vars type=reactor;
}
http {
wasm_var vars "ngx:wasi/var-utils#sum-entry" $rvar $arg_a $arg_b $arg_c $arg_d;
server {
listen *:8080;
location / {
return 200 "sum('$arg_a','$arg_b','$arg_c','$arg_d')=$rvar\n";
}
location /wasm {
client_max_body_size 20M;
wasm_content handler "ngx:wasi/http-handler-entry#handle-request";
}
}
}
Директивы#
load#
|
|
По умолчанию |
— |
wasm_modules |
Загружает модуль из файла на диске и назначает ему уникальный идентификатор (обязательный параметр). Во время загрузки происходит проверка того, что модуль можно инстанцировать.
Директива поддерживает следующие параметры:
|
Позволяет гостю получить доступ к каталогу на хосте. Параметр может быть указан несколько раз для разных каталогов. |
|
Явно ограничивает список API, разрешенных для модуля, перечисляя их. Если модуль пытается использовать недоступные API (не указанные здесь), возвращается ошибка "API не найден". По умолчанию модулю доступны все API. |
|
Управляет жизненным циклом загруженного модуля.
|
wasm_modules#
Директива верхнего уровня, которая предоставляет контекст файла конфигурации, в котором должны указываться директивы WASM. Она может содержать команды для загрузки модулей WASM и настройки параметров, специфичных для той или иной среды выполнения.