Depurando MQTT sobre websockets en Envoy 1.28.0

He migrado nuestra instalación de Envoy de Envoy 1.11.1 a 1.28.0, y ahora también estoy utilizando SNI para seleccionar el certificado correcto. Una gran parte de esa migración consiste en actualizar la sintaxis de la configuración para Envoy de la API v2 a la API v3. La actualización fue bien, excepto para nuestro servicio MQTT basado en websocket...

Weiterlesen

envoy fix para servir archivos grandes desde el backend / timeouts / descargas abortadas

Los clientes se quejaban de que no podían descargar archivos grandes de nuestros sitios web (por ejemplo, PiDoctor en PiCockpit.com). Inicialmente no pude replicar el problema localmente, los archivos parecían descargarse bien. Después de investigar más a fondo determiné que las descargas se cortaban después de un cierto tiempo - dependiendo de su velocidad de descarga, por lo tanto,...

Weiterlesen

enviado sirviendo una respuesta estática

Además de enrutar y redirigir puede servir respuestas estáticas con Envoy. En este caso quiero servir una respuesta prohibida (403) route_config: virtual_hosts: - name: picockpit domains: ["picockpit.local:443", "picockpit.local"] routes: - match: { prefijo: "/demo" } direct_response: status: 403 body: inline_string: "Prohibido". - match: {prefijo: "/"} route: {cluster: target_picockpit} También puede servir...

Weiterlesen

envoy no se conecta a VerneMQ para MQTT sobre websockets, código de error 503

Algunos antecedentes rápidos para cualquiera que se encuentre con los mismos problemas, y cómo depurarlos. Código de error 503 Este es el código de error que estoy recibiendo: Error durante el handshake de WebSocket: Código de respuesta inesperado: 503. Establecer el registro de envoy en debug Aquí está mi docker-compose.yaml para envoy: versión: '3.7' servicios: envoy: build: contexto: ./ dockerfile: Dockerfile container_name:...

Weiterlesen

envoy websockets por configuración de ruta, configuración de prueba de JavaScript

En mi artículo de ayer discutí ampliamente la configuración y prueba de envoy para proxiar websockets. Hoy me gustaría añadir algo de información adicional. sintaxis correcta para la actualización de websocket por ruta Puede habilitar la actualización de websocket por ruta. No es necesario añadirlo globalmente: - nombre: envoy.http_connection_manager config: #upgrade_configs: # - upgrade_type: websocket ...

Weiterlesen

envoy, docker y websockets - depuración y configuración

Los websockets son una tecnología apasionante, que permite convertir una conexión HTTP en una conexión binaria persistente de larga duración, que se puede utilizar para enviar mensajes bidireccionales. Como nota aparte, el protocolo MQTT puede ser transportado usando websockets - que es la única (?) manera para un cliente JavaScript entregado por el sitio web, por ejemplo. En...

Weiterlesen

Ruta y redirección con envoy

Un ejemplo de envoy.yaml que muestra cómo enrutar y redirigir. Hay diferentes opciones, ver aquí https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/route/route.proto#route-redirectaction Este envoy.yaml enruta /taxgod y /taxgod/ (el segundo probablemente podría omitirse porque el primero también debería coincidir, creo) a un nuevo puerto y un protocolo diferente. /picockpit es simplemente redirigido a / y finalmente...

Weiterlesen

Enrutamiento y reescritura de Envoy snippet

Es posible reescribir URLs con Envoy para el backend. ¡Tenga en cuenta que la salida HTML debe tener las rutas adecuadas! (Por eso no voy a investigar más en esta dirección). REF: https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/route/route.proto#route-route También tenga en cuenta que la cadena se va a renderizar literalmente para direct_response -> body -> inline_string,...

Weiterlesen