Sin embargo, cuando ejecuta aplicaciones en plataformas de alojamiento en la nube como AWS, GCP, Azure, etc., o un servidor nginx, debe configurar el puerto para escuchar. Esto puede ser un problema, ya que el puerto para escuchar se define en una variable de entorno.
NGINX no admite variables de entorno en su configuración. Sin embargo, eso no significa que no haya solución para usar variables de entorno en Nginx.
En esta guía rápida, discutiremos cómo usar envsubst en nginx para usar variables de entorno.
¿Qué es envusto??
Envsubst es una utilidad de línea de comandos que le permite sustituir los valores de las variables de entorno. Es parte de las utilidades de getText, lo que significa que está disponible en todas las imágenes oficiales de Nginx Docker, lo que significa que aplicar la solución es muy fácil. Todo lo que necesitamos hacer es aplicar EnvSBST en la plantilla del archivo de configuración del contenedor Docker
Por ejemplo, incluya una plantilla/etc/nginx/plantillas/nginx.confusión.plantilla y agregue la siguiente entrada:
escuchar $ nginx_port;
Una vez que tenga la plantilla configurada, todo lo que necesita hacer es incluirla en el archivo de composición de Docker como:
Imagen: Nginx
Volúmenes:
- ./plantillas:/etc/nginx/plantillas
Puertos:
- "80"
ambiente:
- Nginx_host = localhost
- Nginx_port = 8080
Una vez que ejecuta el contenedor, lee los archivos de plantilla especificados en la entrada de volumen/etc/nginx/plantplates/*.plantillas y llamas al envsubstr, que lee las variables de entorno almacenadas. Luego almacena el valor en/etc/nginx/conf.d
Por lo tanto, la entrada como:
escuchar $ nginx_port;
Emitirá el resultado como:
Escucha 8080;
Esto le permite a Nginx cargar la variable de envsubst.
Conclusión
Para esta guía rápida, utilizamos la utilidad Envsubst para permitir que NGINX lea las variables de entorno.