A ativação da compressão em um gateway de entrada do ASM compacta as respostas HTTP. Esse recurso aumenta a velocidade de resposta e reduz o consumo de largura de banda. Este tópico descreve como ativar a compressão para um gateway de entrada do ASM.
Pré-requisitos
Um gateway de entrada está implantado. Para mais informações, consulte Crie um gateway de entrada.
Se você utilizar um nome de domínio, ele deverá ter um registro ICP (Internet Content Provider) válido para ser acessível.
Procedimento
-
Implante o Nginx no cluster ACK.
-
Crie um arquivo chamado nginx.yaml com o seguinte conteúdo.
-
Execute o comando a seguir para implantar a aplicação Nginx.
kubectl apply -f nginx.yaml
-
-
Crie um VirtualService e um Gateway.
Faça login no console do ASM. No painel de navegação à esquerda, escolha .
Na página Mesh Management, localize a instância do ASM que deseja configurar. Clique em no nome da instância ou em Manage na coluna Actions.
Na página de detalhes da instância do ASM, escolha no painel de navegação à esquerda. Na página exibida, clique em Create from YAML.
-
Na página Create, selecione os Namespaces de destino, cole o conteúdo abaixo no editor de código e clique em Create.
apiVersion: networking.istio.io/v1beta1 kind: VirtualService metadata: name: nginx namespace: default spec: gateways: - nginx-gateway hosts: - '*' http: - match: - uri: exact: / route: - destination: host: nginx port: number: 80 Na página de detalhes da instância do ASM, escolha no painel de navegação à esquerda. Na página exibida, clique em Create from YAML.
-
Na página Create, selecione os Namespaces de destino, cole o conteúdo abaixo no editor de código e clique em Create.
apiVersion: networking.istio.io/v1beta1 kind: Gateway metadata: name: nginx-gateway namespace: default spec: selector: istio: ingressgateway servers: - hosts: - '*' port: name: http number: 80 protocol: HTTP
-
Ative a compressão para o gateway de entrada do ASM.
No painel de navegação à esquerda, escolha .
Na página Ingress Gateway, localize ingressgateway e clique em View YAML na coluna Actions.
-
Na caixa de diálogo Edit, adicione o conteúdo a seguir e clique em OK.
compression: content_type: - text/html enabled: true gzip: memory_level: 9 remove_accept_encoding_header: trueA tabela a seguir descreve os principais campos de compressão. Para obter mais detalhes sobre esses campos, consulte Gerencie um gateway de entrada usando a API do Kubernetes.
Parâmetro
Descrição
compression.content_type
Lista de tipos de conteúdo a compactar.
compression.enabled
Defina se a compressão será ativada no gateway de entrada.
compression.gzip
Nível de memória para compressão Gzip.
compression.remove_accept_encoding_header
-
Se definido como
true, o gateway de entrada remove o cabeçalho Accept-Encoding da solicitação do cliente antes de encaminhá-la ao serviço upstream. -
Se definido como
false, o gateway de entrada preserva o cabeçalho Accept-Encoding na solicitação do cliente antes de encaminhá-la ao serviço upstream.
-
Verifique a compressão
-
Abra as ferramentas de desenvolvedor do navegador. Este guia usa o Google Chrome como exemplo.
No canto superior direito do Google Chrome, clique em no ícone
.Selecione .
-
Acesse a aplicação Nginx.
Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique em no nome do seu cluster. No painel de navegação à esquerda, clique em .
Na página Services, defina o Namespace como istio-system e localize o endereço IP do serviço istio-ingressgateway (porta 80) na coluna External IP.
-
Na barra de endereços do navegador, insira o endereço IP externo do serviço istio-ingressgateway.
Verifique se o campo
Content-Encodingna resposta égzip. Isso indica que a compressão foi ativada com sucesso no gateway de entrada do ASM. No painel Network, selecione qualquer solicitação e verifique os Response Headers para confirmar que contêmcontent-encoding: gzip. Essa confirmação demonstra que o gateway de entrada do ASM ativou corretamente a compressão gzip.