Czy Nginx może używać zmiennych środowiskowych?

Czy Nginx może używać zmiennych środowiskowych?
Nginx to potężny serwer WWW i odwrotny proxy, który stał się domyślnym wyborem dla większości programistów. Wraz ze wzrostem przetwarzania w chmurze i kontenerów, takich jak Docker, wdrażanie wielu aplikacji za pomocą Nginx jest łatwe i wydajne.

Jednak podczas uruchamiania aplikacji na platformach hostingowych w chmurze, takich jak AWS, GCP, Azure itp., lub serwer Nginx, musisz ustawić port do słuchania. Może to stanowić problem, ponieważ port do słuchania jest zdefiniowany w zmiennej środowiskowej.

Nginx nie obsługuje zmiennych środowiskowych w swojej konfiguracji. Nie oznacza to jednak, że nie ma rozwiązania do użycia zmiennych środowiskowych w Nginx.

W tym szybkim przewodniku omówimy sposób korzystania z EnvSubst w Nginx do używania zmiennych środowiskowych.

Co to jest Envsubst?

EnvSubst to narzędzie wiersza poleceń, które pozwala zastąpić wartości zmiennych środowiskowych. Jest to część narzędzi gettext, co oznacza, że ​​jest on dostępny na wszystkich oficjalnych obrazach Docker Nginx, co oznacza, że ​​zastosowanie rozwiązania jest bardzo łatwe. Wszystko, co musimy zrobić, to zastosować EnvsBst na szablonie pliku konfiguracyjnego kontenera Docker

Na przykład dołącz szablon/etc/nginx/szablony/nginx.conf.szablon i dodaj następujący wpis:

Posłuchaj $ nginx_port;

Po skonfigurowaniu szablonu wszystko, co musisz zrobić, to dołączyć go do pliku komponowania Docker jako:

Zdjęcie: Nginx
wolumeny:
- ./szablony:/etc/nginx/szablony
Porty:
- „80”
środowisko:
- Nginx_host = localhost
- Nginx_port = 8080

Po uruchomieniu kontenera odczytuje pliki szablonów określone w wpisie woluminów/etc/nginx/szablon/*.szablony i wywołuje EnvSubstr, który odczytuje przechowywane zmienne środowiskowe. Następnie przechowuje wartość w/etc/nginx/conf.D

Dlatego wpis, taki jak:

Posłuchaj $ nginx_port;

Wyświetli wynik jako:

Posłuchaj 8080;

To pozwala Nginx załadować zmienną z EnvSubst.

Wniosek

Do tego szybkiego przewodnika wykorzystaliśmy narzędzie EnvSubst, aby umożliwić Nginx odczytanie zmiennych środowiskowych.