Nginx.conf’de Dinamik Ortam Değişkenlerini Kullanma Yöntemleri

crazy_boy_34

Yeni Üye
Katılım
Eyl 2026
Konular
1
Mesajlar
1
Tepki puanı
0
Görüntülenme
0
Nginx’in env ve set talimatları ile dışarıdan gelen ortam değişkenlerinin nasıl kullanılacağına dair akıcı bir rehber.

  1. env Talimatı (Nginx 1.9.8+)
    NGINX:
    env APP_HOST;               # Değişkeni okunur
    upstream backend {
        server $APP_HOST:8000;
    }
    Avantaj: Değişken yalnızca başlatma sırasında okunur; yapılandırmada doğrudan kullanılabilir.
    Kısıtlama: Değişken değeri değiştirildiyse Nginx yeniden başlatılması gerekir.
  2. set ile Geçici Değişken
    NGINX:
    set $app_host $APP_HOST;    # Ortam değişkenini Nginx değişkenine aktar
    upstream backend {
        server $app_host:8000;
    }
    Avantaj: Değişken, set ile mutlaka bir değere sahip olacak şekilde zorunlu kılınabilir.
    Kısıtlama: Aynı problem – yeniden başlatma ihtiyacı.
  3. Docker‑Compose ile Dinamik Veri Aktarımı
    YAML:
    services:
      nginx:
        environment:
          - APP_HOST=webapp
        depends_on:
          - webapp
    Bu ortam değişkeni, yukarıdaki doğrudan env çözümünde kullanılabilir.
  4. include Dosyası ile Özel Değişken Tanımı
    Bash:
    # entrypoint.sh
    echo "env APP_HOST=$APP_HOST;" > /etc/nginx/conf.d/env.conf
    exec nginx -g "daemon off;"
    env.conf dosyası, Nginx başlatılırken okunarak değişkeni sağlar.

Özet: Değişkeni doğrudan env ile tanımlamak en basit yol olsa da, değişimin tespiti için Nginx yeniden başlatılması gereklidir. set ile geçici değişken oluşturmak aynı durumu sürdürür, ancak yapılandırma içinde daha okunabilir bir sözdizimi sunar. Docker ortamında environment bloğu veya giriş betiği ile ortam değişkeni sağlamak, env ya da set çözümlerini rahatlıkla birleştirmenize olanak tanır.

Nginx yapılandırmasında ortam değişkenleriyle çalışırken hangi yöntemi tercih etmeniz gerektiğini, sunucunuzu en verimli şekilde yapılandırmak için şöyle sorabilirsiniz: Dinamik ortam değişkenlerini Nginx’e aktarırken, yeniden başlatma ihtiyacını minimize etmek için en uygun yol hangisi?

İlgili konular​

 
Geri
En Üst