Lançamento do balanceador de carga HTTP/TCP HAProxy 3.0

Após cinco anos desde a criação da versão 2.0, foi publicado o lançamento do balanceador de carga HAProxy 3.0, que permite distribuir o tráfego HTTP e solicitações TCP arbitrárias entre um grupo de servidores, considerando vários fatores (por exemplo, verifica a disponibilidade dos servidores, avalia o nível de carga, possui recursos para mitigar DDoS) e realizando uma filtragem primária de dados (por exemplo, é possível analisar cabeçalhos HTTP, filtrar a transmissão de parâmetros de solicitação inválidos, bloquear a injeção SQL e XSS, conectar agentes de processamento de conteúdo). HAProxy também pode ser usado para coordenar a interação de componentes em sistemas baseados na arquitetura de microsserviços. O código do projeto é escrito em C e é distribuído sob a licença GPLv2. O projeto é utilizado em muitos grandes sites, incluindo Airbnb, Alibaba, GitHub, Imgur, Instagram, Reddit, StackOverflow, Tumblr, Twitter e Vimeo.

A versão HAProxy 3.0 foi classificada como lançamentos com suporte a longo prazo (LTS) e será mantida até 2029. Principais mudanças:

  • Uma nova seção de configuração 'crt-store' foi adicionada para configurar o armazenamento e uso de certificados TLS. Ao contrário da configuração anterior 'crt-list', no 'crt-store' o repositório de certificados é separado de seu uso na camada de frontend, permitindo que o local de armazenamento de cada componente do certificado (arquivos de certificados, chaves e dados OCSP) seja definido individualmente.
  • Foi adicionada a possibilidade de definir restrições para solicitações usando HTTP/2, que são permitidas pelo protocolo, mas podem causar problemas. Por exemplo, o envio de um fluxo de quadros CONTINUATION pode levar a um ataque DoS conhecido como 'Continuation flood'.
  • Foi adicionada uma nova diretiva de configuração 'guid', que pode ser usada nas seções 'frontend', 'backend' e 'listen'. A diretiva vincula um identificador único a essas seções, permitindo que as estatísticas relacionadas à seção sejam preservadas após uma reinicialização (o estado da página Stats não será redefinido). Para salvar as estatísticas em um arquivo, foi adicionada um novo comando 'dump stats-file', e para leitura do arquivo após a reinicialização, foi adicionada uma nova diretiva de configuração 'stats-file'.
  • Expandiu-se as capacidades de balanceamento de mensagens Syslog. Foi adicionada a possibilidade de atribuir pesos às linhas do log dos backends relacionadas aos servidores.
  • Adicionada a suporte para formatação de linhas de log na representação JSON e CBOR.
  • Expandidos os dados que podem ser obtidos usando funções de extração de informações, por exemplo, agora é possível solicitar informações sobre o número de sessões HTTP abertas para o backend e o frontend, o tamanho da fila de espera para processamento de solicitações e o número permitido de sessões simultâneas.
  • Aumentada a performance de scripts Lua de thread única, carregados através da diretiva "lua-load".
  • A performance das áreas de armazenamento em memória, criadas através da diretiva stick-table, aumentou significativamente. Por exemplo, em um sistema com 80 threads, a performance cresceu 6 vezes.
  • Em configurações com vários sites, onde Certificado TLS a seleção é feita com base no identificador do host passado através da extensão SNI do TLS, foi adicionado o argumento "default-crt", permitindo definir um certificado padrão que será escolhido se os certificados existentes não puderem ser associados ao site.
  • Adicionadas as ações "set-fc-tos" e "set-bc-tos" para a inserção no lado do backend ou frontend de campos DS (Differentiated Services) nos pacotes IP, que determinam a prioridade do tráfego.
  • Adicionadas as ações "set-fc-mark" e "set-bc-mark", que permitem marcar pacotes IP no lado do backend ou frontend, por exemplo, para atribuição posterior a uma tabela de roteamento específica.
  • Adicionada a suporte para a criação de identificadores no formato UUIDv7.
  • Implementada a possibilidade de usar o prefixo "@virt" para criar arquivos virtuais ACL e Map, que não são salvos no disco. O conteúdo dos arquivos virtuais ACL e Map é adicionado e removido através da Runtime API. Também está disponível o prefixo "@opt" no qual os arquivos virtuais são aplicados apenas na ausência do arquivo real no disco.
  • Foram feitas mudanças que quebram a compatibilidade: é proibido enviar múltiplos comandos para a Runtime API em uma única solicitação com separação por nova linha; é proibido definir a palavra-chave "enabled" para dinâmicos servidores; a verificação de URIs não padrão foi endurecida.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster