Todos os produtos
Search
Central de documentação

Alibaba Cloud DNS:Nginx autogerenciado: encaminhamento HTTPS e mapeamento de portas

Última atualização: Jun 27, 2026

Um proxy reverso Nginx em uma instância ECS permite o encaminhamento de URLs HTTPS e o mapeamento de portas, recursos que o Alibaba Cloud DNS não oferece nativamente. Para cenários padrão, prefira adicionar um registro DNS.

Casos de uso

O Alibaba Cloud DNS apresenta as seguintes limitações:

  • Restrição de protocolo: O serviço DNS não gerencia certificados SSL; portanto, não há suporte para encaminhamento de URL de HTTPS para HTTPS.

  • Limitação de porta: O DNS resolve nomes de domínio para endereços IP, não para portas. Se o backend operar em uma porta não padrão (como 3000), os usuários precisarão adicionar a porta à URL: http://www.example.com:3000.

Arquitetura da solução

image
  • Caminho original: O cliente resolve o nome de domínio via DNS e conecta-se diretamente ao IP do serviço de backend.

  • Novo caminho: Com um proxy reverso Nginx, as requisições seguem este fluxo:

    1. O cliente resolve o nome de domínio pelo DNS, que retorna o IP público do servidor Nginx.

    2. O cliente envia uma requisição HTTP ou HTTPS para esse endereço IP público.

    3. O Nginx compara o cabeçalho Host com as regras de encaminhamento e encaminha a requisição ao serviço de backend apropriado.

    4. O backend processa a requisição e devolve a resposta ao cliente por meio do Nginx.

Procedimento

Este tutorial utiliza uma instância ECS com Alibaba Cloud Linux 3. Se o Nginx já estiver implantado, acesse a Etapa 3: Configure o Nginx para diferentes cenários.

Etapa 1: Preparar o ambiente ECS

  1. Crie uma instância ECS. Consulte Criar uma instância usando o assistente.

    • Sistema operacional: Selecione Alibaba Cloud Linux 3.

    • Rede: Atribua um endereço IP público à instância.

  2. Adicione uma regra de entrada no grupo de segurança para permitir TCP nas portas 22, 80 e 443.

Etapa 2: Instale e inicie o Nginx

  1. Conecte-se à instância ECS usando um cliente SSH.

  2. Execute o comando abaixo para instalar o Nginx.

    sudo yum install -y nginx
  3. Inicie o Nginx e configure-o para iniciar automaticamente na inicialização do sistema.

    sudo systemctl start nginx
    sudo systemctl enable nginx
  4. Verifique se o Nginx está em execução.

    sudo systemctl status nginx

    Se o status for active (running), o serviço foi iniciado com sucesso.

  5. Recarregue a configuração do Nginx sem interromper as conexões ativas.

    sudo systemctl reload nginx

Etapa 3: Configure o Nginx para diferentes cenários

O arquivo principal de configuração é o /etc/nginx/nginx.conf. Recomendamos criar um arquivo .conf separado para cada site no diretório /etc/nginx/conf.d/.

Cenário 1: Encaminhamento de URL HTTPS

O Alibaba Cloud DNS não suporta encaminhamento de HTTPS para HTTPS porque não permite o upload de certificados SSL. Com o Nginx, você pode instalar seu próprio certificado SSL e definir regras personalizadas de encaminhamento.

  • Redirecionamento de URL (encaminhamento explícito)

    Redireciona permanentemente https://example.com para https://aliyun.com. A barra de endereços do navegador é atualizada para a nova URL. Adicione o conteúdo abaixo ao arquivo /etc/nginx/conf.d/redirect.conf:

    server {
        listen 443 ssl http2;
        server_name example.com;
    
        # Configure the SSL certificate and private key for the source domain name
        ssl_certificate /etc/nginx/certs/example.com.fullchain.pem;
        ssl_certificate_key /etc/nginx/certs/example.com.key;
    
        location / {
            return 301 https://aliyun.com$request_uri;
        }
    }
  • Proxy reverso (encaminhamento implícito)

    Encaminha requisições de https://example.com para https://aliyun.com via proxy. A barra de endereços do navegador permanece inalterada enquanto o conteúdo é servido pelo backend. Adicione o seguinte ao arquivo /etc/nginx/conf.d/proxy.conf:

    # Proxy requests for example.com to aliyun.com
    server {
        listen 443 ssl http2;
        server_name example.com;
    
        # Configure the SSL certificate and private key for the source domain name
        ssl_certificate /etc/nginx/certs/example.com.fullchain.pem;
        ssl_certificate_key /etc/nginx/certs/example.com.key;
    
        location / {
            # Forward the request to the target server
            proxy_pass http://aliyun.com;
    
            # Key configuration: Set the Host request header to the target service's domain name to ensure the backend can process the request correctly.
            proxy_set_header Host "aliyun.com";
            
            # Pass the client's real IP address for backend logging and analysis
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
    

Cenário 2: Mapear domínio para uma porta específica

Direciona o tráfego da porta 80 para uma aplicação backend em uma porta não padrão, como 3000, eliminando a necessidade de especificar a porta na URL. Adicione o trecho abaixo ao arquivo /etc/nginx/conf.d/port_mapping.conf:

# Access the service on local port 3000 through example.com
server {
    listen 80;
    server_name example.com;

    location / {
        # Forward requests to port 3000 on the local host
        proxy_pass http://127.0.0.1:3000;

        # Pass the original Host request header so the backend application can identify the domain name being accessed
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Etapa 4: Configure a resolução DNS

Após configurar o Nginx, adicione registros DNS para os domínios atendidos por ele.

  1. Obtenha um nome de domínio. Caso ainda não possua um, registre-o em Alibaba Cloud Domain Names. Se o site estiver hospedado na China continental, conclua primeiro o ICP filing.

  2. Obtenha o endereço IP público da instância ECS onde o Nginx está em execução.

    Na página Instances do console ECS, localize sua instância e verifique a coluna IP Address.

  3. Acesse o console Alibaba Cloud DNS - Public Zone e encontre o nome de domínio desejado.

  4. Adicione ou modifique um registro DNS.

    1. Se nenhum registro DNS estiver configurado, adicione um registro DNS. Crie um registro A para cada nome de domínio configurado no Nginx, como example.com, apontando para o endereço IP público da sua instância ECS.

    2. Caso já exista um registro DNS, atualize seu valor para o IP público do servidor Nginx. As alterações de DNS podem levar de 5 a 10 minutos para propagar.

      No painel Add Record, defina o record type como A -- Maps a domain name to an IPv4 address, o host record como demo, a Resolution Line como Default, o TTL como 10 minutes e o record value como o IP público do servidor Nginx.

Custos e riscos

  • Custo: O principal custo refere-se à instância ECS. Os preços variam conforme as especificações da instância, a região e o método de faturamento. O Nginx é gratuito e open source.

  • Riscos e manutenção: Você é responsável pela operação do proxy reverso, incluindo a aplicação de patches de segurança, o monitoramento da integridade do serviço e o backup das configurações. Uma configuração inadequada ou a falta de manutenção pode resultar em interrupções ou vulnerabilidades de segurança.

  • Recomendação para produção: Reforce as configurações de segurança do Nginx e implemente soluções de monitoramento e análise de logs.

FAQ

O Alibaba Cloud DNS suporta resolução de portas?

Como aponto um nome de domínio para outro site?