wasm_socket_send_timeout
Определяет максимально допустимое время, в течение которого NGINX будет ожидать отправки данных по сокет-соединению WebAssembly.
Описание
Директива wasm_socket_send_timeout задаёт значение таймаута для отправки данных через сокет WebAssembly (Wasm) в NGINX. Если в процессе передачи данных наступает этот таймаут, NGINX завершит соединение и выдаст ошибку, если данные не удалось отправить успешно в указанный промежуток времени. Эта возможность особенно полезна в сценариях, где критически важно стабильное и своевременное взаимодействие с бэкенд‑сервисами, и помогает предотвращать бесконечное удержание ресурсов при неотвечающем нижестоящем сервисе.
Значение таймаута указывается в формате времени (например, "30s" для 30 секунд) и, после установки, применяется ко всем связанным сокет‑соединениям, создаваемым посредством модуля Wasm в указанном контексте http, server или location. Эффективность этой директивы зависит от правильной настройки окружения Wasm и его способности обрабатывать сообщения в заданные пределы, что гарантирует, что операции не будут тормозиться медленной или зависшей коммуникацией.
Подбирая это значение, администраторы могут оптимизировать производительность и управление ресурсами в системах, которые в значительной степени полагаются на модули WebAssembly для расширения функциональности. Правильная настройка таймаута отправки помогает сохранить контроль над поведением приложения и смягчить возможные узкие места, вызванные медленными внешними соединениями.
Пример конфига
http {
wasm_socket_send_timeout 30s;
server {
listen 9000;
location / {
proxy_wasm my_filter;
proxy_pass http://backend;
}
}
}Если установить слишком низкое значение, это может привести к тому, что легитимные запросы будут необоснованно прерваны по таймауту, что приведёт к сбоям транзакций.
Настраивайте таймаут с учётом сетевой задержки: низкое значение в условиях высокой задержки может ухудшить производительность.