socket_send_timeout
在 NGINX 中,`wasm_socket_send_timeout` 指令设置通过 WebAssembly socket 发送数据的最长时间。
Proxy-Wasm support for Nginx powered by wasmtime
语法wasm_socket_send_timeout time;
默认值60s
上下文
参数1
说明
wasm_socket_send_timeout 指令为通过 WebAssembly socket 发送数据定义了一个超时时间。该指令特别适用于将 NGINX 扩展为具备 WebAssembly 功能的环境,使得可以额外控制在超时之前 socket 操作可以阻塞的最长时间。此指令的主要作用在于通过防止在发送操作期间因网络问题或对端无响应而无限期阻塞,从而优化在 NGINX 中运行并嵌入 WebAssembly 模块的应用的性能。
该指令接受单个参数,即以秒为单位或与 NGINX 的时间指令兼容的格式指定的超时时间(例如 60s、1m 等)。当超过指定时长时,连接将被终止,并返回一个错误。这对于维护依赖实时数据传输的应用的健壮性至关重要,因为它确保应用不会在 socket 发送操作期间占用资源超过必要的时间。
在配置此指令时,重要的是选择一个在性能和可靠性之间取得平衡的值。将超时设置得太低可能导致频繁断开连接,而设置得过高则可能在 socket 发送操作期间导致资源被占用时间过长。
配置示例
wasm {
module my_filter /path/to/filter.wasm;
}
http {
server {
listen 9000;
location / {
proxy_wasm my_filter;
proxy_pass http://backend;
}
}
wasm_socket_send_timeout 30s;
}⚠
确保超时时间值适合您的应用的性能需求。
⚠
请注意,如果将超时时间设置得过低,可能会导致连接错误增加。