Partilhar via


Implantar arquivos estáticos da Web

Nota

Os planos Basic, Standarde Enterprise entraram em um período de aposentadoria em 17 de março de 2025. Para obter mais informações, consulte o anúncio de aposentadoria do Azure Spring Apps.

O plano de consumo padrão e o plano dedicado entraram em um período de desativação a 30 de setembro de 2024, com um encerramento completo até o final de março de 2025. Para obter mais informações, consulte Migrar consumo padrão e plano dedicado do Azure Spring Apps para Aplicativos de Contêiner do Azure.

Este artigo aplica-se a: ❎ Basic/Standard ✅ Enterprise

Este artigo mostra como implantar seus arquivos estáticos em uma instância do plano do Azure Spring Apps Enterprise usando o buildpack Tanzu Web Servers. Essa abordagem é útil se você tiver aplicativos que são puramente para armazenar arquivos estáticos como HTML, CSS ou aplicativos front-end criados com a estrutura JavaScript de sua escolha. Você pode implantar diretamente esses aplicativos com um servidor Web configurado automaticamente (HTTPD e NGINX) para atender a esses ativos.

Pré-requisitos

Implante seus arquivos estáticos

Nota

Este artigo se concentra na descrição das configurações de implantação e na solução de problemas específica para a implantação de arquivos estáticos da Web. Para entender os cenários gerais de compilação e implantação para o plano do Azure Springs Apps Enterprise, consulte a seção Criar serviço sob demanda de Usar o Tanzu Build Service e Como implantar aplicativos poliglotas.

Você pode implantar arquivos estáticos no Azure Spring Apps usando servidores Web NGINX ou HTTPD das seguintes maneiras:

  • Você pode implantar arquivos estáticos diretamente. O Azure Spring Apps configura automaticamente o servidor Web especificado para servir os ficheiros estáticos.
  • Você pode criar seu aplicativo front-end na estrutura JavaScript de sua escolha e, em seguida, implantar seu aplicativo front-end dinâmico a partir do código-fonte. O Azure Spring Apps cria seu aplicativo em conteúdo estático e usa seu servidor Web configurado para servir os arquivos estáticos.

Você também pode criar um arquivo de configuração do servidor para personalizar o servidor Web.

Exemplos de implementação

Os exemplos da CLI do Azure nesta seção mostram a criação e a implantação de arquivos estáticos para dois cenários de registro de contêiner:

  • Registro de contêiner gerenciado do Azure Spring Apps.
  • Registro de contêiner gerenciado pelo usuário.

Crie e implante arquivos estáticos diretamente

Este exemplo implanta arquivos estáticos diretamente usando um arquivo de configuração de servidor padrão gerado automaticamente.

O comando a seguir implanta um arquivo estático:

az spring app deploy
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <app-name> \
    --source-path <path-to-source-code> \
    --build-env BP_WEB_SERVER=nginx

Para obter informações sobre como usar variáveis de ambiente, consulte a seção Configurar um arquivo de configuração de servidor gerado automaticamente.

Crie e implante seu aplicativo front-end como conteúdo estático

Este exemplo implanta um aplicativo front-end dinâmico a partir do código-fonte.

O comando a seguir implanta um aplicativo:

az spring app deploy \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <app-name> \
    --source-path <path-to-source-code> \
    --build-env BP_WEB_SERVER=nginx BP_NODE_RUN_SCRIPTS=build BP_WEB_SERVER_ROOT=build

Crie e implante arquivos estáticos usando um arquivo de configuração personalizado

Este exemplo implanta arquivos estáticos usando um arquivo de configuração de servidor personalizado.

O comando a seguir implanta um aplicativo:

az spring app deploy \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <app-name> \
    --source-path <path-to-source-code>

Para obter mais informações, consulte a seção Usar um arquivo de configuração de servidor personalizado deste artigo.

Código de exemplo

Nota

O código de exemplo é mantido pela comunidade de código aberto Paketo.

Os exemplos de buildpacks do Paketo demonstram casos de uso comuns para vários tipos de aplicativos diferentes, incluindo os seguintes casos de uso:

  • Servindo arquivos estáticos com um arquivo de configuração de servidor padrão usando BP_WEB_SERVER para selecionar HTTPD ou NGINX.
  • Usando o Node Package Manager para criar um aplicativo React em arquivos estáticos que um servidor Web pode servir. Use as seguintes etapas:
    1. Defina um script sob a scripts propriedade do arquivo package.json que cria seus ativos estáticos prontos para produção. Para o React, é build.
    2. Descubra onde os ativos estáticos são armazenados após a execução do script de construção. Para React, os ativos estáticos são armazenados em ./build por padrão.
    3. Defina BP_NODE_RUN_SCRIPTS como o nome do script de construção.
    4. Defina BP_WEB_SERVER_ROOT para o diretório de saída da compilação.
  • Servindo ficheiros estáticos com o seu próprio ficheiro de configuração do servidor, usando HTTPD ou NGINX.

Configurar um arquivo de configuração do servidor gerado automaticamente

Você pode usar variáveis de ambiente para modificar o arquivo de configuração do servidor gerado automaticamente. A tabela a seguir mostra as variáveis de ambiente suportadas.

Variável de Ambiente Valor suportado Descrição
BP_WEB_SERVER nginx ou httpd Especifica o tipo de servidor Web, nginx seja para Nginx ou httpd para servidor HTTP Apache. Necessário ao usar o arquivo de configuração do servidor gerado automaticamente.
BP_WEB_SERVER_ROOT Um caminho de arquivo absoluto ou um caminho de arquivo relativo a /workspace. Define o diretório raiz para os arquivos estáticos. A predefinição é public.
BP_WEB_SERVER_ENABLE_PUSH_STATE true ou false Permite o roteamento de estado push para seu aplicativo. Independentemente do percurso solicitado, index.html é sempre servido. Útil para aplicações Web de página única.
BP_WEB_SERVER_FORCE_HTTPS true ou false Impõe HTTPS para conexões de servidor redirecionando todas as solicitações para usar o protocolo HTTPS.

As seguintes variáveis de ambiente não são suportadas.

  • BP_LIVE_RELOAD_ENABLED
  • BP_NGINX_VERSION
  • BP_HTTPD_VERSION

Usar um arquivo de configuração de servidor personalizado

Você pode configurar o servidor Web usando um arquivo de configuração de servidor personalizado. A tabela a seguir mostra o caminho do arquivo de configuração:

Servidor Web Caminho do arquivo de configuração padrão Como personalizar o caminho do arquivo de configuração do servidor
nginx nginx.conf no caminho raiz do seu código-fonte. Use a variável BP_NGINX_CONF_LOCATION de ambiente para especificar o nome do arquivo de configuração. Coloque o arquivo sob o caminho raiz do código-fonte.
httpd httpd.conf sob o caminho raiz do seu código-fonte. Não suportado.

Seu arquivo de configuração deve estar em conformidade com as restrições descritas na tabela a seguir.

Configuração Descrição Configuração do Nginx Configuração Httpd
Porta de escuta O servidor Web deve escutar na porta 8080. O serviço verifica a prontidão da porta no TCP e se ela está ativa. Você deve usar a variável pré-formatada PORT no arquivo de configuração. O número de porta apropriado é injetado quando o servidor Web é iniciado. listen {{PORT}} Listen "${PORT}"
Caminho do log Configurar o caminho do log para o console. access_log /dev/stdout, error_log stderr ErrorLog /proc/self/fd/2
Caminho do arquivo com permissão de gravação O servidor Web recebe permissão de gravação para o diretório /tmp . Configurar o caminho completo requer permissão de gravação no diretório /tmp . Por exemplo: client_body_temp_path/tmp/client_body_temp
Tamanho máximo do corpo aceito da solicitação do cliente O servidor Web está atrás do gateway. O tamanho máximo aceito do corpo da solicitação do cliente é definido como 500 m no gateway e o valor para o servidor Web deve ser inferior a 500 m. client_max_body_size deve ter menos de 500 m. LimitRequestBody deve ter menos de 500 m.

Ligações de Buildpack

A implantação de arquivos estáticos no plano do Azure Spring Apps Enterprise dá suporte à associação buildpack do Dynatrace. A htpasswd vinculação buildpack não é suportada.

Para obter mais informações, consulte Como configurar a integração APM e certificados de CA.

Erros comuns de compilação e implantação

Sua implantação de arquivos estáticos em uma instância do Azure Spring Apps Enterprise pode gerar os seguintes erros comuns de compilação:

  • ERROR: No buildpack groups passed detection.
  • ERROR: Please check that you're running against the correct path.
  • ERROR: failed to detect: no buildpacks participating

A causa raiz desses erros é que o tipo de servidor Web não é especificado. Para resolver esses erros, defina a variável BP_WEB_SERVER de ambiente como nginx ou httpd.

A tabela a seguir descreve erros comuns de implantação quando você implanta arquivos estáticos no Azure Spring Apps Enterprise.

Mensagem de Erro Causa raiz Solução
112404: Exit code 0: purposely stopped, please refer to https://aka.ms/exitcode Falha ao iniciar o servidor Web. Valide o arquivo de configuração do servidor para ver se há um erro de configuração. Em seguida, verifique se o arquivo de configuração está em conformidade com as restrições descritas na seção Usar um arquivo de configuração de servidor personalizado.
mkdir() "/var/client_body_temp" failed (13: Permission denied) O servidor Web não tem permissão de gravação para o caminho especificado. Configure o caminho no diretório /tmp; por exemplo: /tmp/client_body_temp.

Próximos passos