Depuração de MQTT sobre websockets no Envoy 1.28.0

Migrei nossa instalação do Envoy da versão 1.11.1 para a 1.28.0 e agora também estou usando o SNI para selecionar o certificado correto. Uma grande parte dessa migração é atualizar a sintaxe da configuração do Envoy da API v2 para a API v3. A atualização correu bem, exceto para o nosso serviço MQTT baseado em websocket...

Weiterlesen

correção de enviado para servir grandes arquivos do backend / timeouts / downloads abortados

Os clientes queixavam-se de não poderem descarregar grandes ficheiros dos nossos sites (por exemplo, PiDoctor no PiCockpit.com). Inicialmente eu não podia replicar o problema localmente, os ficheiros pareciam estar a descarregar bem. Depois de mais investigação, determinei que os downloads estavam a ser cortados após um certo tempo - dependendo da sua velocidade de download, portanto,...

Weiterlesen

enviado a servir uma resposta estática

Além de rotear e redirecionar você pode servir respostas estáticas com o Envoy. Neste caso eu quero servir uma resposta proibida (403) route_config: virtual_hosts: - nome: domínios picockpit: rotas ["picockpit.local:443", "picockpit.local"] route: - correspondência: { prefixo: "/demo" } direct_response: status: 403 corpo: inline_string: "Forbidden". - correspondência: {prefixo: {prefixo: {prefixo: {prefixo: } "/"} rota: {cluster: target_picockpit} Também pode servir...

Weiterlesen

enviado não conectado à VerneMQ para MQTT por meio de websockets, código de erro 503

Algumas informações rápidas para qualquer pessoa que se depare com os mesmos problemas, e como depurá-los. Código de erro 503 Este é o código de erro que estou recebendo: Erro durante o aperto de mão do WebSocket: Código de resposta inesperado: 503. Set envoy logging to debug Here's my docker-compose.yaml for envoy: version: '3.7' services: envoy: build: context: ./ dockerfile: Dockerfile container_name:...

Weiterlesen

websockets envoy por configuração de rota, configuração de teste JavaScript

No meu artigo de ontem discuti longamente a configuração e teste do enviado para a proxy de websockets. Hoje eu gostaria de adicionar algumas informações adicionais. sintaxe correta para atualização do websocket por rota Você pode habilitar a atualização do websocket por rota. Não é necessário adicioná-lo globalmente: - nome: envoy.http_connection_manager config: #upgrade_configs: # - upgrade_type: websocket ...

Weiterlesen

envoy, docker e websockets - depuração e configuração

Os Websockets são uma tecnologia excitante, permitindo-lhe actualizar uma ligação HTTP para uma ligação binária persistente de longa duração, que pode utilizar para enviar mensagens bidireccionais. Como um aparte, o protocolo MQTT pode ser transportado usando websockets - que é a única forma (?) para um cliente JavaScript entregue pelo site, por exemplo. Em...

Weiterlesen

Rota e Redirecionamento com o Enviado

Um exemplo envoy.yaml mostrando como rotear e redirecionar. Existem diferentes opções, veja aqui https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/route/route.proto#route-redirectaction Esta rota envoy.yaml /taxgod e /taxgod/ (a segunda provavelmente poderia ser omitida porque a primeira também deveria combiná-la, eu acho) para uma nova porta e um protocolo diferente. O /picockpit é simplesmente redirecionado para / e então finalmente...

Weiterlesen

Encaminhamento e reescrita de snippet

É possível reescrever URLs com o Envoy para o backend. Por favor, note que a saída HTML precisa ter as rotas adequadas! (É por isso que não vou investigar mais nesta direção). REF: https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/route/route.proto#route-route Note também que a string vai ser renderizada literalmente para direct_response -> body -> inline_string,...

Weiterlesen