MQTT debuggen via websockets op Envoy 1.28.0

Ik heb onze Envoy-installatie gemigreerd van Envoy 1.11.1 naar 1.28.0, en gebruik nu ook SNI voor het selecteren van het juiste certificaat. Een groot deel van die migratie is het upgraden van de syntax van de configuratie voor Envoy van de v2 API naar de v3 API. De upgrade ging goed, behalve voor onze websocket-gebaseerde MQTT service...

Weiterlesen

envoy die een statisch antwoord serveert

Naast routing en redirecting kun je met Envoy ook statische antwoorden serveren. In dit geval wil ik een verboden antwoord serveren (403) route_config: virtual_hosts: - name: picockpit domains: ["picockpit.local:443", "picockpit.local"] routes: - match: { prefix: "/demo" } direct_response: status: 403 body: inline_string: "Verboden." - match: {prefix: "/"} route: {cluster: target_picockpit} Het kan ook dienen...

Weiterlesen

envoy maakt geen verbinding met VerneMQ voor MQTT over websockets, foutcode 503

Wat achtergrondinformatie voor iedereen die tegen dezelfde problemen aanloopt, en hoe ze te debuggen. Foutcode 503 Dit is de foutcode die ik krijg: Fout tijdens WebSocket handshake: Onverwachte antwoordcode: 503. Stel envoy logging in op debug Hier is mijn docker-compose.yaml voor envoy: version: '3.7' services: envoy: build: context: ./ dockerfile: Dockerfile container_name:...

Weiterlesen

envoy websockets per route configuratie, JavaScript test opzet

In mijn artikel van gisteren heb ik de configuratie & test van envoy voor het proxying van websockets uitvoerig besproken. Vandaag wil ik graag wat extra informatie toevoegen. juiste syntax voor websocket upgrade per route Je kunt websocket upgrade per route inschakelen. Je hoeft het niet globaal toe te voegen: - name: envoy.http_connection_manager config: #upgrade_configs: # - upgrade_type: websocket ...

Weiterlesen

envoy, docker en websockets - debuggen en configuratie

Websockets zijn een opwindende technologie, waarmee je een HTTP verbinding kunt upgraden naar een langlopende persistente binaire verbinding, die je kunt gebruiken om bi-directionele berichten te versturen. Terzijde, het MQTT protocol kan getransporteerd worden met websockets - wat de enige (?) manier is voor bijvoorbeeld een JavaScript client geleverd door de website. In...

Weiterlesen

Route & Omleiding met Gezant

Een voorbeeld envoy.yaml die toont hoe te routeren en te redirecten. Er zijn verschillende opties, zie hier https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/route/route.proto#route-redirectaction Deze envoy.yaml routeert /taxgod en /taxgod/ (de tweede kan waarschijnlijk weggelaten worden omdat de eerste er ook mee overeen zou moeten komen, denk ik) naar een nieuwe poort en een ander protocol. /picockpit wordt gewoon omgeleid naar / en dan uiteindelijk...

Weiterlesen

Envoy routing en herschrijven knipsel

Het is mogelijk om URL's te herschrijven met Envoy voor de backend. Let er wel op dat de HTML output de juiste routes moet hebben! (Dat is de reden waarom ik niet verder in deze richting ga onderzoeken). REF: https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/route/route.proto#route-route Merk ook op dat de string letterlijk gerenderd gaat worden voor direct_response -> body -> inline_string,...

Weiterlesen