Debuggen von MQTT über Websockets auf Envoy 1.28.0

Ich habe unsere Envoy-Installation von Envoy 1.11.1 auf 1.28.0 migriert und verwende nun auch SNI zur Auswahl des richtigen Zertifikats. Ein großer Teil dieser Migration ist die Aktualisierung der Syntax der Konfiguration für Envoy von der v2 API auf die v3 API. Das Upgrade verlief gut, mit Ausnahme unseres Websocket-basierten MQTT-Dienstes...

Weiterlesen

envoy Fix für das Ausliefern großer Dateien aus dem Backend / Timeouts / abgebrochene Downloads

Kunden haben sich darüber beschwert, dass sie große Dateien von unseren Websites (z.B. PiDoctor auf PiCockpit.com) nicht herunterladen konnten. Zunächst konnte ich das Problem nicht lokal replizieren, die Dateien schienen problemlos heruntergeladen zu werden. Nach weiteren Untersuchungen stellte ich fest, dass die Downloads nach einer bestimmten Zeit abbrachen - abhängig von der Downloadgeschwindigkeit...

Weiterlesen

Paho MQTT Client (Javascript), Envoy, VerneMQ: Fehlersuche bei Verbindungsabbrüchen

Nachdem ich picockpit auf meinem Server installiert hatte, wurde ein Fehler festgestellt: Das Web-Frontend brach in regelmäßigen Abständen ab. Dies war in der lokalen Entwicklungsumgebung nicht der Fall. Benutzer von picockpit meldeten denselben Fehler. Ich habe den Fehler heute behoben und einen Hotfix eingespielt. Es stellte sich heraus, dass es ein Timing-Problem war. TL;DR wie...

Weiterlesen

Abgesandter, der eine statische Antwort liefert

Neben Routing und Redirecting können Sie mit Envoy auch statische Antworten ausliefern. In diesem Fall möchte ich eine verbotene Antwort (403) ausliefern route_config: virtual_hosts: - name: picockpit domains: ["picockpit.local:443", "picockpit.local"] routes: - match: { prefix: "/demo" } direct_response: status: 403 body: inline_string: "Forbidden". - match: {Präfix: "/"} route: {cluster: target_picockpit} Es kann auch dazu dienen...

Weiterlesen

envoy verbindet sich nicht mit VerneMQ für MQTT über Websockets, Fehlercode 503

Einige kurze Hintergrundinformationen für alle, die auf dieselben Probleme stoßen, und wie man sie behebt. Fehlercode 503 Dies ist der Fehlercode, den ich erhalte: Fehler beim WebSocket-Handshake: Unerwarteter Antwortcode: 503. Set envoy logging to debug Hier ist meine docker-compose.yaml für envoy: version: '3.7' services: envoy: build: context: ./ dockerfile: Dockerfile container_name:...

Weiterlesen

envoy Websockets per Routenkonfiguration, JavaScript-Testaufbau

In meinem gestrigen Artikel habe ich die Konfiguration und den Test von envoy für das Proxying von Websockets ausführlich besprochen. Heute möchte ich einige zusätzliche Informationen hinzufügen. korrekte Syntax für Websocket-Upgrade pro Route Sie können Websocket-Upgrade pro Route aktivieren. Sie müssen es nicht global hinzufügen: - name: envoy.http_connection_manager config: #upgrade_configs: # - upgrade_type: websocket ...

Weiterlesen

envoy, Docker und Websockets - Fehlersuche und Konfiguration

Websockets sind eine aufregende Technologie, die es Ihnen ermöglicht, eine HTTP-Verbindung zu einer dauerhaften binären Verbindung auszubauen, die Sie zum Senden bidirektionaler Nachrichten verwenden können. Nebenbei bemerkt kann das MQTT-Protokoll über Websockets transportiert werden - die einzige (?) Möglichkeit für einen JavaScript-Client, der von der Website ausgeliefert wird, zum Beispiel. In...

Weiterlesen

Weiterleiten & Umleiten mit envoy

Ein Beispiel envoy.yaml, das zeigt, wie man routen und umleiten kann. Es gibt verschiedene Optionen, siehe hier https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/route/route.proto#route-redirectaction Diese envoy.yaml leitet /taxgod und /taxgod/ (das zweite könnte wahrscheinlich weggelassen werden, weil das erste auch dazu passen sollte, denke ich) auf einen neuen Port und ein anderes Protokoll um. /picockpit wird einfach auf / umgeleitet und dann schließlich...

Weiterlesen

Envoy-Routing und Rewriting-Snippet

Es ist möglich, URLs mit Envoy für das Backend umzuschreiben. Bitte beachten Sie, dass die HTML-Ausgabe die richtigen Routen haben muss! (Deshalb werde ich nicht weiter in diese Richtung forschen). REF: https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/route/route.proto#route-route Beachten Sie auch, dass der String für direct_response -> body -> inline_string,... wörtlich wiedergegeben wird.

Weiterlesen