No entanto, quando você executa aplicativos em plataformas de hospedagem em nuvem como AWS, GCP, Azure, etc., ou um servidor nginx, você precisa definir a porta para ouvir. Isso pode ser um problema à medida que a porta ouve é definida em uma variável de ambiente.
Nginx não suporta variáveis de ambiente em sua configuração. No entanto, isso não significa que não há solução para usar variáveis de ambiente no nginx.
Neste guia rápido, discutiremos como usar o EnvSubst no Nginx para usar variáveis de ambiente.
O que é EnvSubst?
Envsubst é um utilitário de linha de comando que permite substituir os valores das variáveis de ambiente. Faz parte dos utilitários GetText, o que significa que está disponível em todas as imagens oficiais do Nginx Docker, o que significa que a aplicação da solução é muito fácil. Tudo o que precisamos fazer é aplicar Envsbst no modelo do arquivo de configuração do contêiner do Docker
Por exemplo, inclua um modelo/etc/nginx/modelos/nginx.conf.modelo e adicione a seguinte entrada:
Ouça $ nginx_port;
Depois de configurar o modelo, tudo o que você precisa fazer é incluí -lo no arquivo de composição do docker como:
Imagem: nginx
volumes:
- ./modelos:/etc/nginx/modelos
Portas:
- "80"
ambiente:
- Nginx_host = localhost
- Nginx_port = 8080
Depois de executar o contêiner, ele leu os arquivos de modelo especificados na entrada de volume/etc/nginx/modelos/*.Modelos e chama o EnvSubstr, que lê as variáveis de ambiente armazenadas. Em seguida, ele armazena o valor em/etc/nginx/conf.d
Portanto, a entrada como:
Ouça $ nginx_port;
Produzirá o resultado como:
Ouça 8080;
Isso permite que o nginx carregue a variável do Envsubst.
Conclusão
Para este guia rápido, utilizamos o utilitário EnvSubst para permitir que o NGINX leia variáveis de ambiente.