Próbuję zoptymalizować moje konfiguracje nginx, więc możliwe byłoby ustawienie jednej zmiennej, a wszystkie ścieżki lokalizacji byłyby aktualizowane automatycznie. Mam cztery pytania:
server_name php.domain.com;
root /srv/web/vhosts/php/web;
error_log /srv/web/vhosts/php/logs/error.log;
access_log /srv/web/vhosts/php/logs/access.log;
Chciałbym ustawić jedną zmienną (w tym przypadku „php”) i dołączyć ją do konfiguracji.
set $variable "php";
server_name $variable.domain.com;
root /srv/web/vhosts/$variable/web;
error_log /srv/web/vhosts/$variable/logs/error.log;
access_log /srv/web/vhosts/$variable/logs/access.log;
Wydaje się jednak, że nginx ignoruje zmienne w tej konfiguracji. Czy robię coś źle, czy nie można użyć zmiennej w ścieżkach lokalizacji?
access_log
/error_log
pracuj ze zmiennymi, ale z pewnymi ograniczeniami.server_name
nie może zawierać zmiennych.$hostname
. Zaktualizowałem odpowiedź, aby wyjaśnić to zachowanie.$hostname
jest jedyną dozwoloną zmienną. github.com/nginx/nginx/blob/… W rzeczywistości jest to raczej magiczna stała, a nie prawdziwa zmienna