Kan nginx bruke miljøvariabler?

Kan nginx bruke miljøvariabler?
Nginx er en kraftig webserver og omvendt proxy som har blitt et standardvalg for de fleste utviklere. Med økningen av skyberegning og containere som Docker, er det enkelt og effektivt å distribuere flere applikasjoner ved bruk av Nginx.

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.