Débogage de MQTT sur websockets sur Envoy 1.28.0

J'ai migré notre installation Envoy de la version 1.11.1 à la version 1.28.0, et j'utilise maintenant aussi SNI pour sélectionner le bon certificat. Une grande partie de cette migration consiste à mettre à jour la syntaxe de la configuration d'Envoy de l'API v2 à l'API v3. La mise à jour s'est bien passée, sauf pour notre service MQTT basé sur websocket...

Weiterlesen

correction de l'envoi de gros fichiers depuis le backend / délais d'attente / téléchargements interrompus

Des clients se plaignaient de ne pas pouvoir télécharger de gros fichiers à partir de nos sites Web (par exemple, PiDoctor sur PiCockpit.com). Au départ, je n'ai pas pu reproduire le problème localement, les fichiers semblaient se télécharger correctement. Après une enquête plus approfondie, j'ai déterminé que les téléchargements s'interrompaient après un certain temps - en fonction de votre vitesse de téléchargement, donc...

Weiterlesen

Paho MQTT Client (Javascript), Envoy, VerneMQ : débogage des déconnexions

Après avoir déployé picockpit sur mon serveur, un bug a été observé : le frontend web se déconnectait à intervalles très réguliers. Ce problème n'existait pas dans l'environnement de développement local. Les utilisateurs de picockpit ont signalé le même bug. Je l'ai débogué aujourd'hui et j'ai appliqué un correctif. Il s'avère que c'était un problème de timing. TL;DR comment...

Weiterlesen

envoi d'une réponse statique

En plus du routage et de la redirection, vous pouvez servir des réponses statiques avec Envoy. Dans ce cas, je veux servir une réponse interdite (403) route_config : virtual_hosts : - nom : picockpit domaines : ["picockpit.local:443", "picockpit.local"] routes : - match : { prefix : "/demo" } direct_response : status : 403 body : inline_string : "Interdit". - match : {préfixe : "/"} route : {cluster : target_picockpit} Il peut aussi servir...

Weiterlesen

envoy ne se connecte pas à VerneMQ pour MQTT sur websockets, code d'erreur 503

Quelques informations de base pour tous ceux qui rencontrent les mêmes problèmes, et comment les déboguer. Code d'erreur 503 Voici le code d'erreur que je reçois : Erreur pendant l'échange de données WebSocket : Unxpected response code : 503. Définir la journalisation d'envoy sur debug Voici mon docker-compose.yaml pour envoy : version : '3.7' services : envoy : build : context : ./ dockerfile : Dockerfile nom_du_conteneur :...

Weiterlesen

envoy websockets par configuration de route, configuration de test JavaScript

Dans mon article d'hier, j'ai longuement discuté de la configuration et du test d'envoy pour le proxy des websockets. Aujourd'hui je voudrais ajouter quelques informations supplémentaires. syntaxe correcte pour la mise à jour des websockets par route Vous pouvez activer la mise à jour des websockets par route. Pas besoin de l'ajouter globalement : - nom : envoy.http_connection_manager config : #upgrade_configs : # - upgrade_type : websocket ...

Weiterlesen

envoy, docker et websockets - débogage et configuration

Les websockets sont une technologie passionnante, qui vous permet de transformer une connexion HTTP en une connexion binaire persistante de longue durée, que vous pouvez utiliser pour envoyer des messages bidirectionnels. Pour l'anecdote, le protocole MQTT peut être transporté à l'aide de websockets - ce qui est le seul ( ?) moyen pour un client JavaScript livré par le site web, par exemple. En...

Weiterlesen

Route & Redirection avec envoy

Un exemple de envoy.yaml montrant comment router et rediriger. Il y a différentes options, voir ici https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/route/route.proto#route-redirectaction Cet envoy.yaml route /taxgod et /taxgod/ (le second pourrait probablement être omis parce que le premier devrait aussi correspondre, je pense) vers un nouveau port et un protocole différent. /picockpit est simplement redirigé vers / et enfin...

Weiterlesen

Envoy routage et réécriture snippet

Il est possible de réécrire des URLs avec Envoy pour le backend. Veuillez noter que la sortie HTML doit avoir les routes appropriées ! (C'est pourquoi je ne vais pas investiguer plus loin dans cette direction). REF : https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/route/route.proto#route-route Notez aussi que la chaîne sera rendue littéralement pour direct_response -> body -> inline_string,...

Weiterlesen