Configure vários certificados em uma única instância do Global Accelerator para acelerar o acesso a múltiplos domínios HTTPS.
Caso de uso
Uma empresa sediada em US (Silicon Valley) implantou dois serviços web em servidores da Alibaba Cloud, cada um com um nome de domínio diferente. Os clientes estão localizados principalmente em China (Hong Kong), e os serviços web enfrentam os seguintes desafios:
Conexões instáveis na rede pública causam alta latência, variação de atraso (jitter) e perda de pacotes.
Acelerar cada domínio individualmente gera custos elevados.
Para resolver esses problemas, a empresa planeja implantar o Global Accelerator com um listener HTTPS. Um listener HTTPS acelera o acesso a múltiplos domínios HTTPS por meio dos seguintes recursos:
Vincula vários certificados para associar múltiplos domínios a um único listener HTTPS.
Oferece suporte a regras de encaminhamento baseadas em domínio, direcionando solicitações de diferentes domínios aos respectivos servidores de backend.
Criptografa as requisições dos clientes para garantir a segurança dos dados durante a transmissão.
A tabela a seguir descreve os detalhes dos servidores web e o plano de encaminhamento de requisições após a implantação do Global Accelerator.
Item | Domínio 1 | Domínio 2 |
Protocolo do listener | HTTPS | |
Porta do listener | 443 | |
Certificado correspondente | certificado padrão A | certificado adicional B |
Regra de encaminhamento correspondente | regra de encaminhamento padrão | regra de encaminhamento personalizada |
Grupo de endpoints correspondente | grupo de endpoints padrão | grupo de endpoints virtual |
Servidor correspondente | Servidor 1 | Servidor 2 |
Protocolo do serviço de backend | HTTP | HTTPS |
Porta do serviço de backend | 80 | 443 |
Endereço IP público do servidor | 47.XX.XX.62 | 47.XX.XX.34 |
Os certificados configurados no Global Accelerator criptografam os dados dos clientes até a instância. Já os certificados instalados nos servidores de backend criptografam os dados do Global Accelerator até os servidores.
Pré-requisitos
Adquira um certificado SSL e envie uma solicitação de certificado. Para mais informações, consulte Select and purchase a certificate e Submit a certificate application.
Carregue o arquivo do certificado nos servidores de backend. Para mais informações, consulte Upload a file to an ECS instance by using Cloud Assistant.
Os servidores de backend, Servidor 1 e Servidor 2, fornecem serviços via porta HTTP 80 e porta HTTPS 443, respectivamente.
Configure a resolução DNS para o Domínio 1 (xxxtest.cloud) e para o Domínio 2 (xxxtest.fun). Especificamente, configure registros A para apontar os domínios aos endereços IP públicos dos servidores de backend.
Este tópico descreve como usar o Nginx para configurar serviços de backend executados na porta HTTP 80 e na porta HTTPS 443, além de utilizar o Alibaba Cloud DNS para configure DNS records . Caso utilize outro provedor de serviços DNS, siga as instruções correspondentes.
Este tópico utiliza uma instância padrão do Global Accelerator com pagamento conforme o uso como exemplo para demonstrar como configurar o Global Accelerator e acelerar o acesso a múltiplos domínios HTTPS.
Instâncias GA com pagamento conforme o uso utilizam o modelo Pay-By-Data-Transfer para faturamento de largura de banda. Não é necessário associar um pacote de largura de banda. O Cloud Data Transfer (CDT) gerencia o traffic billing.
Ao utilizar uma instância GA com pagamento conforme o uso pela primeira vez, ative o serviço: Activate the Service.
Etapa 1: Configurar informações básicas
Faça login no console do Global Accelerator.
Na página Instances, clique em Create Standard Pay-as-you-go Instance.
-
Na etapa Basic Instance Configuration, configure os parâmetros conforme a tabela abaixo e clique em Next.
Parâmetro
Descrição
GA Instance Name
Insira um nome para a instância GA.
Instance Billing Method
A opção Pay-As-You-Go vem selecionada por padrão.
São cobrados instance fees, CU fees e data transfer fees para instâncias do Global Accelerator com pagamento conforme o uso.
Resource Group
Selecione o grupo de recursos ao qual a instância padrão pertence.
O grupo de recursos deve ter sido criado pela conta atual da Alibaba Cloud no Resource Management. Para mais informações, consulte Create a resource group.
Etapa 2: Configurar uma área de aceleração
Configure áreas de aceleração para uma instância do Global Accelerator a fim de especificar as regiões onde seus usuários estão localizados e alocar largura de banda para acelerar o acesso aos seus serviços de backend.
Na etapa Configure Acceleration Area, defina os parâmetros de acordo com a tabela a seguir e clique em Next.
Parâmetro | Descrição |
Acceleration Area | Selecione uma ou mais regiões na lista suspensa e clique em Add. Neste exemplo, a região China (Hong Kong) na seção Asia Pacific é selecionada. |
Assign Bandwidth | |
Maximum Bandwidth | Especifique a largura de banda máxima para a região de aceleração. Cada região suporta uma faixa de largura de banda de 2 a 10.000 Mbit/s. A largura de banda máxima serve para limitação de tráfego (throttling). As taxas de transferência de dados são gerenciadas pelo CDT. Neste exemplo, utiliza-se o valor padrão de 200 Mbit/s. Importante Definir um valor baixo para a largura de banda máxima pode causar limitação de tráfego e descarte de pacotes. Especifique a largura de banda máxima conforme a necessidade. |
IP Protocol | Selecione a versão do protocolo IP usada para conectar ao Global Accelerator. Neste exemplo, o valor padrão IPv4 é selecionado. |
ISP Line Type | Escolha um tipo de linha ISP para a instância do Global Accelerator. Neste exemplo, BGP (Multi-ISP) é selecionado. |
Etapa 3: Configurar um listener
Um listener verifica e processa requisições de conexão de entrada com base na porta e no protocolo especificados. Cada listener associa-se a um ou mais grupos de endpoints. Após associar um grupo de endpoints a um listener, o GA roteia o tráfego para o endpoint ideal dentro desse grupo.
Na página Configure Listeners, configure um listener e clique em Next.
Parâmetro | Descrição |
Listener Name | Insira um nome para o listener. |
Routing Type | Selecione um tipo de roteamento. Neste exemplo, selecione Intelligent Routing. |
Protocol | Escolha um protocolo para o listener. Neste exemplo, selecione HTTPS. |
Port | Especifique a porta do listener usada para receber e encaminhar requisições aos endpoints. O número da porta deve estar no intervalo de 1 to 65499. Neste exemplo, insira 443. |
Server certificate | Selecione o certificado de servidor obtido anteriormente. Neste exemplo, selecione Certificado A. |
TLS security policy | Escolha a política de segurança TLS a ser utilizada. Uma política de segurança TLS inclui as versões de protocolo TLS suportadas e conjuntos de cifras para HTTPS. Para mais informações, consulte TLS security policies. Caso não configure este parâmetro, a política padrão tls_cipher_policy_1_0 será aplicada. |
Client Affinity | Defina se deseja ativar a afinidade de cliente. Quando ativada, todas as requisições do mesmo cliente são roteadas para o mesmo endpoint. Esse recurso é adequado para aplicações com estado (stateful). Neste exemplo, selecione Source IP Address. |
Add HTTP Header | Selecione os campos adicionais de cabeçalho HTTP necessários. Neste exemplo, utiliza-se a configuração padrão. |
Etapa 4: Configurar um grupo de endpoints e endpoints
-
Na página Configure an Endpoint Group, configure um grupo de endpoints e os respectivos endpoints e, em seguida, clique em Next.
Esta seção descreve apenas os parâmetros altamente relevantes para este cenário. Para mais informações, consulte Add and manage endpoint groups for intelligent routing listeners.
Parâmetro
Descrição
Region
Selecione a região onde o grupo de endpoints está implantado.
Neste exemplo, selecione US (Silicon Valley).
Endpoint Configuration
Endpoints são os hosts de destino para as requisições dos clientes. Configure os endpoints com base nas informações abaixo:
Backend Service Type: Selecione Alibaba Cloud Public IP.
Backend Service: Insira o endereço IP do serviço de backend a ser acelerado. Neste exemplo, insira o endereço IP público do Servidor 1: 47.XX.XX.62.
Weight: Defina um peso para o endpoint. O valor deve estar entre 0 e 255. O Global Accelerator roteia o tráfego para os endpoints com base em seus pesos. Neste exemplo, usa-se o valor padrão 255.
AvisoSe o peso de um endpoint for definido como 0, o Global Accelerator interrompe a distribuição de tráfego para esse endpoint. Proceda com cautela.
Preserve Client IP
O recurso de preservação de IP do cliente, ativado por padrão, permite que os serviços de backend obtenham os endereços IP dos clientes. Um listener HTTP lê o endereço IP de origem do cliente no campo x-forwarded-for do cabeçalho HTTP. Para mais informações, consulte Preserve client IP addresses.
Backend Service Protocol
Selecione o protocolo de serviço usado pelo servidor de backend.
O protocolo padrão é HTTP.
Port Mapping
Caso a porta do listener seja diferente da porta de serviço do seu endpoint, configure o mapeamento de portas.
Listener Port: Este parâmetro deve corresponder à porta do listener atual. Neste exemplo, insira 443.
Endpoint Port: A porta de serviço do seu endpoint. Neste exemplo, insira 80.
Traffic Distribution Ratio
Especifique a porcentagem de tráfego a ser encaminhada para o grupo de endpoints.
Valores válidos: 0 a 100.
Neste exemplo, utiliza-se o valor padrão de 100%.
Health Check
Ative ou desative as verificações de integridade.
Ao ativar este recurso, o sistema verifica o status de integridade dos endpoints. Para mais informações, consulte Enable and manage health checks.
Neste exemplo, as verificações de integridade vêm desativadas por padrão.
Na página Configuration Review, revise as configurações e clique em Submit. A criação de uma instância GA leva cerca de 3 a 5 minutos.
Opcional: Após a criação da instância, clique em Go to Instance Details abaixo da lista de detalhes da tarefa. Na página de detalhes da instância, selecione abas como Instance Information, Listeners e Acceleration Areas para visualizar a configuração da instância.
-
Configure um grupo de endpoints virtual.
Na página de detalhes da instância, clique na aba Listeners.
Na aba Listener, localize o listener desejado e clique no ID do grupo de endpoints na coluna Default Endpoint Group.
Na aba Endpoint Group, na seção Virtual Endpoint Group, clique em Add Virtual Endpoint Group.
-
Na página Add Endpoint Group, defina as configurações conforme as informações abaixo e clique em Create.
Exceto pelos parâmetros listados abaixo, configure todos os outros parâmetros da mesma forma que o grupo de endpoints padrão.
Backend Service Type: Selecione Alibaba Cloud Public IP.
Backend Service: Insira o endereço IP público do Servidor 2: 47.XX.XX.34.
Backend Service Protocol: Selecione HTTPS.
-
Port Mapping: Nenhum mapeamento de porta é necessário.
Se a porta do listener for igual à porta de serviço do seu endpoint, o mapeamento de portas não é necessário. O Global Accelerator encaminha automaticamente as requisições de acesso para a porta de serviço do endpoint.
Etapa 5: Vincular um certificado adicional
Vincule um certificado adicional a um listener HTTPS para associar outro domínio. Combinado com regras de encaminhamento baseadas em domínio, isso direciona requisições de diferentes domínios para distintos grupos de endpoints virtuais.
Os passos a seguir descrevem como associar o Domínio 2 (xxxtest.fun) ao listener HTTPS vinculando o Certificado B.
Na aba Listener, localize o listener HTTPS alvo e clique em seu ID.
Na página de detalhes do listener, clique em Certificates.
Em Certificates, na seção Additional Certificate, clique em Associate Certificate.
-
Na caixa de diálogo Associate Certificate, configure o certificado adicional conforme as informações abaixo e clique em OK.
Certificate: Selecione o certificado a ser vinculado. Neste exemplo, selecione Certificado B.
Associated Domain Name: Escolha o domínio associado a este certificado que você deseja acelerar usando o Global Accelerator. Neste exemplo, selecione Domínio 2 (xxxtest.fun).
Etapa 6: Adicionar uma regra de encaminhamento
Quando um listener HTTPS recebe uma requisição, ele a compara com as regras de encaminhamento personalizadas. Se houver correspondência, o listener encaminha a requisição para o grupo de endpoints correspondente. Caso nenhuma regra personalizada corresponda, a requisição segue para o grupo de endpoints padrão.
Os passos abaixo explicam como criar uma regra de encaminhamento personalizada para o grupo de endpoints virtual do Servidor 2. Essa regra roteia todas as requisições para o Domínio 2 (xxxtest.fun) diretamente ao Servidor 2.
Na aba Listener, localize o listener HTTPS alvo e clique em seu ID.
Na página de detalhes do listener, clique na aba Forwarding Rule.
Na aba Forwarding Rule, clique em Add Forwarding Rule.
-
Na seção Add Forwarding Rule, configure a regra de encaminhamento conforme as informações a seguir e clique em OK.
Parâmetro
Descrição
Name
Insira um nome para a regra de encaminhamento.
If (Matching All Conditions)
Configure uma condição de encaminhamento.
Neste exemplo, selecione Domain Name e insira o domínio para correspondência: xxxtest.fun.
Forwarding action
Selecione o tipo de ação e o alvo de encaminhamento.
Neste exemplo, escolha Forward to e selecione o grupo de endpoints virtual criado anteriormente.
Etapa 7: Configurar um registro CNAME
Aponte o Domínio 1 (xxxtest.cloud) e o Domínio 2 (xxxtest.fun) para o endereço CNAME da instância do Global Accelerator no DNS. Isso garante que as requisições de acesso sejam roteadas através do Global Accelerator.
-
Na página Domains, localize seu domínio (xxxtest.cloud) e clique em DNS settings na coluna Actions.
Caso seu domínio não esteja registrado na Alibaba Cloud, adicione-o add the domain ao console do Alibaba Cloud DNS antes de configurar registros DNS.
Na página DNS Settings, localize o registro A existente e clique em Edit na coluna Actions.
-
No painel Modify record, defina Record Type como CNAME, altere o Record Value para o endereço CNAME atribuído à instância do Global Accelerator e clique em Confirm.
Encontre o endereço CNAME atribuído à instância do Global Accelerator na página Instances.
Repita os passos anteriores para alterar o registro A existente do Domínio 2 (xxxtest.fun) para um registro CNAME.
Se precisar retornar resultados de resolução com base na região do cliente, certifique-se de atualizar o Alibaba Cloud DNS para a Edição Enterprise Standard ou Enterprise Ultimate. Para mais informações sobre como atualizar, consulte Renew an instance .
Após a atualização, altere a linha DNS padrão do registro A existente para uma linha regional específica e adicione um registro CNAME apontando para o endereço CNAME atribuído à instância do Global Accelerator .
Etapa 8: Testar a configuração
Verifique se os clientes conseguem acessar os serviços web implantados em US (Silicon Valley) através dos diferentes domínios com acesso acelerado.
Este tópico usa o Alibaba Cloud Linux 3 como exemplo. Os comandos de teste podem variar conforme o sistema operacional. Consulte a documentação do seu sistema operacional para obter comandos específicos.
O efeito de aceleração do serviço Global Accelerator depende dos testes reais do seu negócio.
Testar a conectividade do site
Abra uma janela de linha de comando em um computador localizado na área de aceleração. Neste exemplo, a área de aceleração é China (Hong Kong).
-
Execute o seguinte comando tanto para o Domínio 1 (xxxtest.cloud) quanto para o Domínio 2 (xxxtest.fun) para verificar se a configuração do CNAME entrou em vigor.
ping <website_domain>Se o resultado da resolução retornada corresponder ao CNAME da instância do Global Accelerator, a configuração do CNAME estará ativa.
[root@iZjxxx ~]# ping xxx_test.cloud PING ga-bp1xxx9.com (8.217.xxx.xxx) 56(84) bytes of data. 64 bytes from 8.217.xxx.xxx (8.217.xxx.xxx): icmp_seq=1 ttl=101 time=1.59 ms 64 bytes from 8.217.xxx.xxx (8.217.xxx.xxx): icmp_seq=2 ttl=101 time=1.59 ms 64 bytes from 8.217.xxx.xxx (8.217.xxx.xxx): icmp_seq=3 ttl=101 time=1.60 ms ^C --- ga-bp1xxx9.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev = 1.593/1.595/1.598/0.002 ms [root@iZjxxx ~]# ping xxx_test.fun PING ga-bp1xxx.com (8.217.xxx.xxx) 56(84) bytes of data. 64 bytes from 8.217.xxx.xxx (8.217.xxx.xxx): icmp_seq=1 ttl=96 time=1.58 ms 64 bytes from 8.217.xxx.xxx (8.217.xxx.xxx): icmp_seq=2 ttl=96 time=1.53 ms 64 bytes from 8.217.xxx.xxx (8.217.xxx.xxx): icmp_seq=3 ttl=96 time=1.51 ms ^C --- ga-bp1xxx9.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev = 1.508/1.539/1.576/0.042 ms -
Execute o comando abaixo para o Domínio 1 (xxxtest.cloud) e o Domínio 2 (xxxtest.fun) a fim de testar a conectividade do site e confirmar a recuperação do certificado.
curl -v https://<website_domain> --resolve <website_domain>:<listener_port>:<accelerated_IP>O resultado de teste a seguir refere-se ao Domínio 1 (xxxtest.cloud) como exemplo. Se a saída incluir as informações do certificado e uma resposta válida, o serviço do site está funcionando conforme esperado.
[root@iZxxx]# curl -v https://xxx_test.cloud --resolve xxx_test.cloud:443:8.217.xxx * Added xxx_test.cloud:443:8.217.xxx to DNS cache * Rebuilt URL to: https://xxx_test.cloud/ * Hostname xxx_test.cloud was found in DNS cache * Trying 8.217.xxx... * TCP_NODELAY set * Connected to xxx_test.cloud (8.217.xxx) port 443 (#0) * ALPN, offering h2 * ALPN, offering http/1.1 * successfully set certificate verify locations: * CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none * TLSv1.3 (OUT), TLS handshake, Client hello (1): * TLSv1.3 (IN), TLS handshake, Server hello (2): * TLSv1.2 (IN), TLS handshake, Certificate (11): * TLSv1.2 (IN), TLS handshake, Server key exchange (12): * TLSv1.2 (IN), TLS handshake, Server finished (14): * TLSv1.2 (OUT), TLS handshake, Client key exchange (16): * TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1): * TLSv1.2 (OUT), TLS handshake, Finished (20): * TLSv1.2 (IN), TLS handshake, Finished (20): * SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256 * ALPN, server accepted to use h2 * Server certificate: * subject: CN=xxx_test.cloud * start date: Mar 1 00:00:00 2024 GMT * expire date: Mar 31 23:59:59 2025 GMT * subjectAltName: host "xxx_test.cloud" matched cert's "xxx_test.cloud" * issuer: C = US; O = DigiCert Inc; CN = DigiCert Global G2 TLS RSA SHA256 2020 CA1 * SSL certificate verify ok. * Using HTTP2, server supports multi-use * Connection state changed (HTTP/2 confirmed) * Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0 * Using Stream ID: 1 (easy handle 0x55d6e15b76b0) > GET / HTTP/2 > Host: xxx_test.cloud > User-Agent: curl/7.61.1 > Accept: */* > * Connection state changed (MAX_CONCURRENT_STREAMS == 128)! < HTTP/2 200 < date: Thu, 14 Sep 2023 09:00:09 GMT < content-type: text/html < content-length: 299 < last-modified: Mon, 11 Sep 2023 10:27:09 GMT < etag: "64feeb7d-12b" < accept-ranges: bytes < <!DOCTYPE html> <html> <head> <title>HTTP Server Test Page</title> <style> body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } </style> </head> <body> <h1>Welcome to HTTP Server Test Page!</h1> <p>This is ECS01.</p> </body> </html> * Connection #0 to host xxx_test.cloud left intact
Testar o desempenho da aceleração
Para testar o desempenho da aceleração, consulte Test the acceleration performance of Global Accelerator.