Imidlertid, når du kjører applikasjoner på skyhotellplattformer som AWS, GCP, Azure, etc., eller en Nginx -server, må du stille porten til å lytte på. Dette kan være et problem som havnen å lytte på er definert i en miljøvariabel.
Nginx støtter ikke miljøvariabler i konfigurasjonen. Det betyr imidlertid ikke at det ikke er noen løsning å bruke miljøvariabler i Nginx.
I denne raske guiden vil vi diskutere hvordan du bruker Envsubst i Nginx for å bruke miljøvariabler.
Hva er envsubst?
Envsubst er et kommandolinjeverktøy som lar deg erstatte verdiene på miljøvariabler. Det er en del av GetText -verktøyene, noe som betyr at det er tilgjengelig i alle offisielle Nginx Docker -bilder, noe som betyr å bruke løsningen er veldig enkel. Alt vi trenger å gjøre er å bruke envsbst på malen til konfigurasjonsfilen til Docker -beholderen
Inkluder for eksempel en mal/etc/nginx/maler/nginx.konf.mal og legg til følgende oppføring:
Lytt $ nginx_port;
Når du har konfigurert malen, er alt du trenger å gjøre å inkludere den i Docker -komponeringsfilen som:
Bilde: Nginx
Volum:
- ./maler:/etc/nginx/maler
Porter:
- "80"
miljø:
- Nginx_host = localhost
- Nginx_port = 8080
Når du har kjørt beholderen, leste den malfilene som er spesifisert i volumoppføringen/etc/nginx/maler/*.Maler og kaller Envsubstr, som leser miljøvariablene som er lagret. Den lagrer deretter verdien i/etc/nginx/conf.d
Derfor oppføringen som:
Lytt $ nginx_port;
Vil sende ut resultatet som:
Lytt 8080;
Dette gjør at Nginx kan laste inn variabelen fra Envsubst.
Konklusjon
For denne raske guiden benyttet vi Envsubst -verktøyet for å la Nginx lese miljøvariabler.