Czy można określić root
ścieżkę względem zawierającego plik conf?
Tworzymy aplikację internetową i przechowujemy app-nginx.conf
plik z konfiguracją specyficzną dla aplikacji w katalogu projektu. Chcę móc włączyć ten plik do głównego nginx.conf
i mieć root
ścieżkę poprawnie odwołującą się do podkatalogu wymaganego projektu. Przykład:
# /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;
}
Po uruchomieniu nginx z podobną konfiguracją nginx próbuje rozwiązać ./app
ścieżkę względem katalogu instalacyjnego nginx ( /usr/local/Cellar/nginx/1.4.3/
w moim przypadku), a nie do katalogu aplikacji.
--prefix
może wpływać na inne serwery nginx iz mojego osobistego punktu widzenia trochę trudniej zarządzać w porównaniu do pliku konfiguracyjnego. A nginx nie pozwala na tworzenie zmiennych niestandardowych zset
dyrektywą pozaserver
kontekstem, więc nie mogę przenieść ścieżki bezwzględnej z mojego pliku app-nginx.conf.include
issl_certificate
, na przykład, użyje prefiksu dir dla opcji takich jakroot
. Wydaje mi się, że nie mam pełnej listy, z której korzysta każda opcja.Nie znalazłem sposobu na użycie ścieżek względnych lub zdefiniowanie zmiennych globalnych, ale ta mała sztuczka rozwiązuje mój problem.
źródło
map
dyrektywy z pojedyncządefault
wartością, która będzie dla mnie odgrywać rolę zmiennej.