Peut nginx utiliser des variables d'environnement?

Peut nginx utiliser des variables d'environnement?
Nginx est un serveur Web puissant et un proxy inversé qui est devenu un choix par défaut pour la plupart des développeurs. Avec la montée en puissance du cloud computing et des conteneurs tels que Docker, le déploiement de plusieurs applications à l'aide de Nginx est facile et efficace.

Cependant, lorsque vous exécutez des applications sur des plateformes d'hébergement cloud telles que AWS, GCP, Azure, etc., ou un serveur Nginx, vous devez définir le port pour écouter. Cela peut être un problème car le port à écouter est défini dans une variable d'environnement.

Nginx ne prend pas en charge les variables d'environnement dans sa configuration. Cependant, cela ne signifie pas qu'il n'y a pas de solution pour utiliser les variables d'environnement dans nginx.

Dans ce guide rapide, nous discuterons de la façon d'utiliser EnvSubst dans Nginx pour utiliser les variables d'environnement.

Qu'est-ce que EnviSubst?

EnvSubst est un utilitaire de ligne de commande qui vous permet de remplacer les valeurs des variables d'environnement. Il fait partie des utilitaires GetText, ce qui signifie qu'il est disponible dans toutes les images officielles de Nginx Docker, ce qui signifie que l'application de la solution est très facile. Tout ce que nous devons faire est de s'appliquer envsbst sur le modèle du fichier de configuration du conteneur Docker

Par exemple, incluez un modèle / etc / nginx / modèles / nginx.confli.modèle et ajouter l'entrée suivante:

écouter $ nginx_port;

Une fois que vous avez configuré le modèle, il vous suffit de l'inclure dans le fichier docker compose comme:

Image: nginx
Volumes:
- ./ modèles: / etc / nginx / modèles
PORTS:
- "80"
environnement:
- Nginx_host = localhost
- Nginx_port = 8080

Une fois que vous avez exécuté le conteneur, il a lu les fichiers de modèle spécifiés dans l'entrée de volume / etc / nginx / modèles / *.modèles et appelle l'envsubstr, qui lit les variables environnementales stockées. Il stocke ensuite la valeur en / etc / nginx / conf.d

Par conséquent, l'entrée telle que:

écouter $ nginx_port;

Sortira le résultat comme:

Écoutez 8080;

Cela permet à Nginx de charger la variable depuis EnvSubst.

Conclusion

Pour ce guide rapide, nous avons utilisé l'utilitaire EnvSubst pour permettre à Nginx de lire les variables d'environnement.