socket_connect_timeout
Директива `wasm_socket_connect_timeout` задаёт период ожидания для установления сокетных соединений внутри модулей WebAssembly в NGINX.
Описание
Директива wasm_socket_connect_timeout задаёт максимально допустимое время для установления сокетного соединения при использовании модулей WebAssembly с NGINX. Это особенно важно при выполнении сетевых операций, поскольку время установления соединения может варьироваться в зависимости от внешних факторов, таких как состояние сети и время отклика сервера. По умолчанию, если соединение не устанавливается в течение указанного периода ожидания, оно завершится с ошибкой, что позволяет разработчикам корректно обрабатывать отказ подключения в своих приложениях WebAssembly.
Эта директива принимает в качестве аргумента период времени. Время можно указать в секундах, минутах или других единицах времени, распознаваемых NGINX, с использованием типичных суффиксов, таких как 's' для секунд и 'm' для минут. Директива wasm_socket_connect_timeout действует на уровне блока server HTTP, то есть применяется ко всем операциям WebAssembly, инициируемым в этом блоке, если только не переопределена более специфичной конфигурацией в другой части иерархии. Крайне важно подобрать подходящее значение таймаута исходя из ожидаемой задержки в сети и эксплуатационных требований: слишком маленькое значение может привести к частым ошибкам по таймауту в нормальных условиях, тогда как слишком большое — к зависанию сервисов при проблемах с подключением.
Пример конфига
http {
wasm_socket_connect_timeout 60s;
server {
listen 9000;
location / {
proxy_pass http://backend;
proxy_wasm my_filter;
}
}
}Убедитесь, что значение timeout соответствует условиям вашей сети; слишком низкое может привести к преждевременным сбоям, а слишком высокое — к зависанию запросов.
Эта директива применима только в контексте операций WebAssembly; она не влияет на стандартные NGINX connection timeouts.
Если используется вместе с другими директивами, влияющими на поведение timeout, убедитесь, что настройки не конфликтуют.