Todos os produtos
Search
Central de documentação

Serverless App Engine:Implante um serviço Nginx usando o SAE

Última atualização: Jun 28, 2026

Use o Serverless App Engine (SAE) para hospedar um serviço Nginx em dois cenários comuns: servir um site estático ou atuar como proxy reverso que encaminha requisições de clientes para uma aplicação backend. Este guia aborda a criação de uma imagem personalizada do Nginx, o envio para um registro e a implantação no SAE.

Como funciona

image

O Nginx recebe requisições dos clientes e serve arquivos estáticos diretamente ou as encaminha para uma aplicação backend com base nos padrões de URI. A resposta retorna ao cliente por meio do Nginx.

Escolha seu cenário

Identifique qual cenário se aplica a você antes de começar, pois algumas etapas são específicas para cada caso.

Cenário

Descrição

Etapas a ignorar

Site estático

Servir HTML, CSS e imagens do contêiner Nginx

Ignore as regras de encaminhamento na etapa 2; ignore o gateway NAT na etapa 4

Proxy reverso

Encaminhar requisições de clientes para uma aplicação backend com base na URI

Conclua todas as etapas

O contêiner Nginx neste guia escuta na porta 80 . Ao associar uma instância do Classic Load Balancer (CLB) na etapa 4, defina a Container Port como 80 .

Pré-requisitos

Antes de iniciar, certifique-se de ter:

  • Docker instalado em seu ambiente local ou em uma instância do Elastic Compute Service (ECS)

  • Um repositório de imagens no Container Registry (ACR) — Enterprise Edition ou Personal Edition

  • (Apenas para proxy reverso) Uma aplicação backend acessível pela internet ou dentro da sua VPC

Etapa 1: Prepare os recursos do site estático

Este guia utiliza o seguinte arquivo de exemplo: nginx-demo.zip.

O arquivo compactado contém:

  • html/index.html — a página inicial padrão

  • html/error.html — a página de erro 404 padrão

  • conf/nginx.conf — o arquivo de configuração do Nginx

Em produção, substitua esses arquivos pelos seus próprios recursos estáticos e configurações.

Etapa 2: Escreva o arquivo de configuração do Nginx

O exemplo conf/nginx.conf abrange duas configurações: acesso a recursos estáticos e encaminhamento de requisições.

Configure o acesso a recursos estáticos

...
    server {
        listen       80 default_server; # Listen on port 80.
        ...
        root         /usr/share/nginx/html;
        include /etc/nginx/default.d/*.conf;

        # Serve index.html for requests to the root path.
        location / {
            root /usr/share/nginx/html; # Path where static files are stored in the container.
            index index.html;
        }

        # Return error.html for 404 errors.
        error_page 404 /error.html;
        location = /error.html {
            root /usr/share/nginx/html;
        }
    }
...

Configure as regras de encaminhamento (apenas proxy reverso)

Ignore esta seção se estiver construindo apenas um site estático.

Este exemplo considera que o endpoint da aplicação backend é 121.40.xx.xx:80. A configuração a seguir encaminha requisições com URIs correspondentes a /api/* para o backend e reescreve o caminho para /*:

...
        # Forward /api/* requests to the backend application.
        location /api/ {
            proxy_pass http://121.40.xx.xx:80/;
        }
...
Se o serviço Nginx e a aplicação backend estiverem na mesma VPC, use o endpoint privado do backend em vez de um endereço IP público. Nesse caso, não é necessário um gateway NAT de Internet.

Para obter todas as opções de configuração, consulte a documentação oficial do Nginx.

Etapa 3: Crie e envie a imagem

Escreva um Dockerfile

# Base image
FROM nginx:1.20.2

# Copy the Nginx configuration file into the container.
COPY conf/nginx.conf /etc/nginx/nginx.conf

# Copy static files into the container.
COPY html /usr/share/nginx/html

Crie a imagem

Execute o comando a seguir no diretório onde o Dockerfile está localizado:

docker build . -t my-nginx:1.0
# .: Use the current directory as the build context.
# -t: Set the image name and tag.

Teste a imagem localmente

# Start the container.
docker run -d -p 80:80 my-nginx:1.0

# Test static file access.
curl localhost:80/

# Test request forwarding (reverse proxy only).
curl localhost:80/api/

Envie a imagem para o ACR

Envie a imagem para o seu repositório no Container Registry (ACR). Para obter instruções, consulte Enviar e baixar imagens (Enterprise Edition) ou Enviar e baixar imagens (Personal Edition).

Etapa 4: Implante o Nginx e configure o acesso à rede

  1. Implante a aplicação Nginx a partir da imagem enviada ao ACR. Consulte Implantar uma aplicação a partir de uma imagem.

  2. (Apenas para proxy reverso com backend público) Por padrão, aplicações no SAE não têm acesso à internet. Caso seu serviço Nginx encaminhe requisições para um endpoint público, configure um gateway NAT de Internet para a VPC. Consulte Configurar um gateway NAT de Internet para permitir que aplicações SAE acessem a internet.

  3. Associe uma instância CLB para expor o serviço Nginx em um endereço IP público. Consulte Associar uma instância CLB a uma aplicação para gerar um endpoint público ou privado. Defina a Container Port como 80.

    Para permitir que os clientes acessem o serviço Nginx por meio de um nome de domínio, configure a resolução DNS para o endereço IP público.
  4. Abra um navegador e acesse o endereço IP público para verificar a implantação.

Etapa 5 (opcional): Atualize a configuração do Nginx sem recriar a imagem

Use um item de configuração (ConfigMap) para injetar um nginx.conf atualizado no contêiner em execução. Isso evita a necessidade de recriar a imagem sempre que você alterar a configuração.

Importante

Um arquivo de configuração injetado via ConfigMap sobrescreve o arquivo original na imagem do contêiner.

  1. Crie um item de configuração (ConfigMap) no namespace da aplicação Nginx. Consulte Criar um item de configuração (ConfigMap). Defina o Configuration Item Name como nginx. Adicione uma chave chamada nginx.conf e defina seu valor como o conteúdo do arquivo de configuração atualizado.

    lQEe08Yf6s

  2. Injete o arquivo de configuração e reimplante a aplicação. Consulte Injetar configurações. Para Configuration Item, selecione o ConfigMap nginx. Para Key, selecione nginx.conf. Defina o Mount Path como /etc/nginx/nginx.conf.

    8qK49P9SJq

  3. Após a reimplantação da aplicação, use o WebShell para fazer login em uma instância da aplicação e verifique se o arquivo de configuração atualizado está no local correto.

    p7GRcntPRp