O ALB Extensible Edition permite encaminhar requisições para serviços de backend do tipo FQDN. Utilize o OSS para armazenar recursos estáticos e uma instância do ALB Extensible Edition para rotear as requisições ao OSS por meio de uma VPC. Essa arquitetura separa o frontend do backend, reduz os custos de tráfego na rede pública e melhora a estabilidade do acesso.
Como funciona
A instância do ALB Extensible Edition recebe as requisições do cliente e as encaminha pela VPC até o domínio de acesso do bucket do OSS configurado no grupo de servidores do tipo FQDN. Em seguida, a instância retorna a resposta do bucket ao cliente. Para lidar com outros tipos de requisição, adicione mais serviços de backend e configure regras de encaminhamento conforme necessário.
Instância do ALB Extensible Edition: Oferece recursos de balanceamento de carga e encaminhamento de tráfego.
Listener HTTPS: Recebe as requisições dos clientes.
Grupo de servidores do tipo FQDN: Define o domínio de acesso do bucket do OSS como um serviço de backend.
Bucket do OSS: Armazena os recursos do site estático.
Pré-requisitos
Você tem acesso à prévia pública do ALB Extensible Edition.
Você criou uma VPC na região China (Ulanqab), com um vSwitch na Zona A e outro na Zona B.
Você registrou um nome de domínio personalizado. A instância do ALB neste tópico está implantada na região China (Ulanqab). Portanto, conclua o registro ICP do nome de domínio.
Você possui um certificado SSL compatível com seu nome de domínio personalizado. Caso o certificado não tenha sido adquirido na Alibaba Cloud, faça upload dele para o Serviço de Gerenciamento de Certificados da Alibaba Cloud.
Procedimento
Etapa 1: Criar e configurar um bucket do OSS
Crie um bucket do OSS, configure permissões de leitura pública, faça upload dos arquivos de página estática e ative o recurso de hospedagem de site estático.
Criar um bucket do OSS
Faça logon no Console de Gerenciamento do OSS. No painel de navegação à esquerda, clique em Bucket List e, em seguida, clique em Create Bucket.
-
No painel Create Bucket, defina as configurações abaixo e mantenha os valores padrão para as demais opções. Clique em Create e confirme.
Bucket Name: Defina um nome globalmente exclusivo para o bucket.
Region: Selecione China (Ulanqab).
Configurar permissões do bucket
Na lista de buckets, clique no Bucket Name desejado para abrir a página de detalhes do bucket.
No painel de navegação à esquerda, clique em Permission Control > Block Public Access, desative a chave Block Public Access e confirme a ação na caixa de diálogo exibida.
Acesse a aba ACL, clique em Settings, defina o Bucket ACL como Public Read e clique em Save.
Fazer upload de arquivos de página estática
No painel de navegação à esquerda, clique em Object Management > Objects e, em seguida, clique em Upload Object.
Faça upload da página estática de exemplo
index.html. Para Object ACL, selecione Inherit Bucket.
<html>
<head>
<title>Hello OSS!</title>
<meta charset="utf-8">
</head>
<body>
<p>Start Alibaba Cloud OSS Hosting</p>
<p>This is the index page</p>
</body>
</html>
Em seguida, faça upload do arquivo
404.html. Para Object ACL, selecione Inherit Bucket.
<html>
<head>
<title>Page Not Found</title>
<meta charset="utf-8">
</head>
<body>
<p>The page you are looking for does not exist</p>
<p>You can try visiting the homepage</p>
</body>
</html>
Configurar hospedagem de site estático
No painel de navegação à esquerda, clique em Data Management > Static Page e, em seguida, clique em Settings. Após concluir a configuração, clique em Save.
Default Homepage: Insira
index.html.Subfolder Homepage: Disabled por padrão.
Default 404 Page: Insira
404.html.Error Page Status Code: Padrão 404.
Etapa 2: Mapear um domínio para o bucket do OSS
Ao acessar um arquivo HTML pelo nome de domínio padrão de um bucket (interno ou público), o OSS adiciona cabeçalhos de resposta que forçam o navegador a baixar o arquivo em vez de renderizá-lo. Para contornar essa restrição de segurança, mapeie um nome de domínio personalizado para o bucket.
No painel de navegação à esquerda, clique em Bucket Settings > Domain Names e, em seguida, clique em Map Custom Domain Name.
Na caixa de diálogo Map Custom Domain Name, insira o nome de domínio a ser vinculado ao bucket do OSS, siga as instruções para concluir a vinculação e confirme que o domínio entrou em vigor.
Após concluir a vinculação, anote o nome de domínio associado (por exemplo, static.example.com). Use esse nome de domínio para configurar o serviço de backend do ALB nas etapas seguintes.
Etapa 3: Criar uma instância do ALB Extensible Edition
Faça logon no console do ALB e clique em Create ALB.
-
Na página de compra, preencha as configurações a seguir e clique em Create Now.
Region: Selecione China (Ulanqab).
Network type: Selecione Internet.
VPC e Zone: Selecione a VPC desejada. Para as zonas, escolha Ulanqab Zone A e Ulanqab Zone B, selecionando um vSwitch correspondente para cada uma. Por fim, marque Automatically assign EIP.
IP version: Selecione IPv4.
Edition: Selecione Extensible.
Na página Confirm Order, verifique os detalhes de configuração da instância e clique em Activate Now.
Etapa 4: Configurar a resolução do PrivateZone
Configure o PrivateZone para resolver o nome de domínio personalizado mapeado para o bucket do OSS na Etapa 2 para o nome de domínio interno do bucket. Isso permite que o ALB acesse o bucket pela VPC, o que reduz os custos de tráfego público e aumenta a estabilidade do acesso.
Adicionar uma zona ao PrivateZone
Faça logon no console do Private DNS e clique em Add Zone.
-
Na caixa de diálogo Add , configure os parâmetros abaixo e clique em OK para confirmar.
Authoritative Zone: Insira o nome de domínio vinculado ao bucket do OSS, como
static.example.com.Effective in VPCs: Selecione a VPC onde a instância do Application Load Balancer (ALB) está localizada.
Adicionar um registro CNAME
Na lista de nomes de domínio, clique em Settings na coluna Actions do nome de domínio alvo. Na página Settings, clique em Add Record.
-
Na caixa de diálogo Add Record, preencha a configuração a seguir e clique em OK.
Record Type: Selecione CNAME.
Hostname: Insira
@para resolver para o domínio raizstatic.example.com.Record Value: Insira o nome de domínio interno do bucket do OSS. Na página Overview do bucket do OSS, visualize o valor de Access from ECS over the VPC (internal network) na coluna Bucket Domain Name. O valor segue um formato como
bucket-name.oss-cn-wulanchabu-internal.aliyuncs.com.Query Source e TTL: Mantenha os valores padrão.
Na caixa de diálogo Change Resource Record Confirmation, confirme as informações do registro e clique em OK.
Depois que a resolução DNS entrar em vigor, ao acessar static.example.com a partir da VPC onde o ALB está localizado, o nome de domínio será resolvido para o endereço IP interno do bucket do OSS, permitindo o acesso pela rede interna da VPC.
Etapa 5: Criar um grupo de servidores do tipo FQDN
Crie um grupo de servidores do tipo FQDN e adicione o nome de domínio de acesso do bucket do OSS como serviço de backend.
No Console de Grupos de Servidores, certifique-se de que a região esteja definida como China (Ulanqab) e clique em Create Server Group.
-
Configure o grupo de servidores com base nas informações abaixo e clique em Create.
Server Group Type: Selecione Domain Name.
Server Group Name: Neste tópico, insira
sgp-dns-oss.Backend Server Protocol: O valor padrão é
HTTP.DNS Server Configuration: Clique em Auto-fill with Private DNS Address. O sistema preencherá automaticamente o DNS interno da Alibaba Cloud.
-
Na caixa de diálogo The server group is created, clique em Add Backend Server. Na caixa de diálogo Add DNS Name, conclua as configurações a seguir e clique em OK.
DNS name: Insira o nome de domínio mapeado para o bucket do OSS, como
static.example.com.Port: Insira
80.
Etapa 6: Criar um listener
No console do ALB, clique no ID da instância desejada para ir à página Instance Details. Na aba Listener, clique em Create Listener.
Na etapa Configure Listener, defina o Listener Protocol como HTTPS e a Listener Port como
443. Em seguida, clique em Next.Na etapa SSL Certificate, selecione o certificado SSL correspondente ao seu nome de domínio personalizado e clique em Next.
Na etapa Server Group, selecione o tipo Domain Name e o grupo de servidores
sgp-dns-oss, e clique em Next.Na etapa Configuration Review, confirme a configuração e clique em Submit.
Etapa 7: Configurar a resolução DNS
Crie um registro CNAME para apontar seu nome de domínio personalizado para o nome DNS da instância do ALB. Isso permite que os clientes acessem seu site pelo domínio personalizado.
Este tutorial usa o Alibaba Cloud DNS como exemplo. Se o seu nome de domínio não estiver registrado na Alibaba Cloud, primeiro adicione seu nome de domínio ao console do Alibaba Cloud DNS.
Acesse o console do ALB e copie o Domain Name da instância desejada.
Faça logon no console do Alibaba Cloud DNS. Na coluna Actions do nome de domínio alvo, clique em Settings. Na página Settings, clique em Add Record.
-
Adicione um registro CNAME com base nas informações abaixo e clique em OK.
Record Type: Selecione CNAME.
Hostname: Insira um prefixo de nome de domínio, como
test. O nome de domínio para acessar o ALB serátest.example.com.Query Source e TTL: Mantenha as configurações padrão.
Record Value: Insira o nome DNS da instância do ALB.
Na caixa de diálogo Change Resource Record Confirmation, confirme as informações do registro DNS e clique em OK.
Etapa 8: Testar e verificar
test.example.com é um nome de domínio de exemplo. Para testes, substitua-o pelo nome de domínio real configurado na Etapa 7. É necessário garantir que a resolução do nome de domínio tenha entrado em vigor.
Acessar a página inicial
Visite https://test.example.com em um navegador. A página inicial padrão index.html configurada no OSS será retornada.
Acessar diretamente o index.html
Ao acessar https://test.example.com/index.html em um navegador, o arquivo index.html também é retornado.
Testar a página de erro 404
Ao acessar um recurso inexistente em um navegador, como https://test.example.com/donotexist, a página de erro 404.html configurada no OSS é retornada.
Mais informações
Faturamento
Taxas do OSS: Cobradas com base no uso real. Para mais informações, consulte a Visão geral do faturamento do OSS.
ALB Extensible Edition: Este recurso está em prévia pública e é gratuito. No entanto, o EIP vinculado à instância do ALB Extensible Edition é cobrado separadamente. Para mais detalhes, consulte as Regras de faturamento do EIP.
Taxas de resolução do PrivateZone: Cobradas no modelo de pagamento conforme o uso. Para mais informações, consulte o Faturamento do produto PrivateZone.
Taxas de nome de domínio e resolução DNS pública: Além das taxas de nome de domínio cobradas pelo registrador, pague as taxas de resolução DNS autoritativa pública se utilizar o Alibaba Cloud DNS para resolução pública.
Taxas de certificado: Se você adquirir ou fizer upload de um certificado para a Alibaba Cloud, pague as taxas de certificado SSL.
Regiões suportadas pelo ALB Extensible Edition
Área | Região | Zona |
China | China (Ulanqab) | Zona A, Zona B e Zona C |
China (Hangzhou) | Zona J e Zona K | |
China (Pequim) | Zona I, Zona K e Zona L | |
China (Xangai) | Zona B e Zona F | |
China (Hong Kong) | Zona B, Zona C e Zona D | |
Ásia-Pacífico | Singapura | Zona A, Zona B e Zona C |
Japão (Tóquio) | Zona B, Zona C e Zona E | |
Europa e Américas | Alemanha (Frankfurt) | Zona A e Zona B |
EUA (Vale do Silício) | Zona A e Zona B | |
Oriente Médio | EAU (Dubai) | Zona A e Zona B |
Recomendações
Seleção do tipo de bucket: Escolha uma classe de armazenamento adequada com base na frequência de acesso para equilibrar desempenho e custo. Para recursos estáticos importantes, ative o armazenamento redundante de zona para garantir maior disponibilidade.
Aceleração CDN: Posicione uma CDN à frente do ALB para armazenar recursos estáticos em cache nos nós de borda. Isso melhora a velocidade de acesso e a experiência do usuário.
Perguntas frequentes
Falha na requisição ao OSS com o erro: upstream connect error or disconnect/reset before headers. reset reason: connection timeout
Verifique se a resolução do PrivateZone está configurada corretamente e se o PrivateZone está associado à VPC da instância do ALB.
Confirme se o nome de domínio configurado no grupo de servidores corresponde ao nome de domínio mapeado para o bucket do OSS.
A requisição chega ao OSS, mas a página inicial não é exibida
Verifique se o bucket permite acesso público e se sua ACL está definida como leitura pública.
Certifique-se de que a hospedagem de site estático esteja ativada para o bucket e que o arquivo
index.htmltenha sido carregado e definido como página inicial padrão.