Nginx: conf dosyasına göre kök yolu


17

rootİçeren conf dosyasına göre yol belirtmek mümkün mü ?

Bir web uygulaması geliştiriyoruz app-nginx.confve projenin dizininde uygulamaya özel yapılandırmaya sahip dosyayı saklıyoruz. Bu dosyayı ana içine dahil edebilmek nginx.confve rootgerekli projenin alt dizinine uygun bir şekilde yol var istiyorum. Misal:

# /etc/nginx/nginx.conf
http {
    include /absolute/path/to/app/app-nginx.conf
}


# /absolute/path/to/app/app-nginx.conf
server {
    server_name localhost;
    listen 9090;

    root ./app;
}

Nginx'i benzer yapılandırmayla başlattıktan sonra nginx , uygulamanın dizinine değil, ./appnginx kurulum dizinine ( /usr/local/Cellar/nginx/1.4.3/benim durumumda) göre yolu çözmeye çalışır .

Yanıtlar:


11

Kök yolunu içeren conf dosyasına göre belirtmek mümkün mü?

Kısa cevap: Hayır.

Uzun yanıt: Nginx, varsayılan olarak, yalnızca derleme zamanında ayarlanan --prefixve böyle olan yolu bilir --conf-path(ref: https://nginx.org/en/docs/configure.html ). Komutu çalıştırarak Nginx tarafından kullanılan çeşitli yolları bulabiliriz nginx -V(büyük harf "V"). Yani, --conf-pathana nginx.confdosyanın bulunduğu yerdir ve bu yol göreli yollar için kullanılır.

Resmi belgelere göre ( https://nginx.org/r/root ), bir rootyönerge başka değişkenler içerebilir.

İlk cevabı gönderdikten 5 yıl sonra açıklamak için @ cyker için teşekkürler!


Teşekkürler Pothi. Ne yazık ki seçeneklerden hiçbiri benim için çalışmıyor. --prefixdiğer nginx sunucularını etkileyebilir ve kişisel bakış açımdan yapılandırma dosyasına kıyasla yönetilmesi biraz daha zor olabilir. Ve nginx, setdirektifin serverbağlam dışında özel değişkenler oluşturmasına izin vermediğinden , mutlak yolu app-nginx.conf dosyamdan taşıyamam.
Anton Moiseev

Dolayısıyla, bu yol, göreli yollar için kullanılır. Bence bu yanlış. Görünüşe göre nginx, seçenekler için config dir kullanacak includeve ssl_certificateörneğin, seçenekler için önek dir kullanacaktır root. Her bir seçeneğin kullandığı tam bir liste bulamıyorum.
Cyker

@Cyker Haklısın. Cevabı şimdi güncelledi. Tabii ki, tam değil. Ancak, orijinal cevaptan daha iyi (bu gerçekten yanlış / yanlıştı).
Pothi Kalimuthu

Başlangıçtan Pro'ya Nginx okuyorum, "Zaten bir konum bloğu içinde kök yönergesi kullanımını gördünüz. Kök yönergesi Nginx'e tam nitelikli yol / etc / nginx / html / app1 / resim / myImage.jpg." Yani IMHO bu Nginx yapılandırma göreli yolları destek anlamına gelir?
Webwoman

Burada, soru "root" direktifine ve "conf dosyasına göreli yolu" destekleyip desteklemeyeceğine özgüdür.
Pothi Kalimuthu

0

Göreli yollar kullanmanın veya global değişkenleri tanımlamanın bir yolunu bulamadım, ancak bu küçük hile sorunumu çözdü.


3
Ne küçük hilesi?
Michael Hampton

Değişkeni tanımlayamıyorum, ancak değişkenin benim için oynayacağı maptek bir defaultdeğerle direktif kullanabilirim .
Anton Moiseev
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.