nginx 구성을 최적화하려고하므로 하나의 변수를 설정할 수 있으며 모든 위치 경로가 자동으로 업데이트됩니다. 질문에 네 줄이 있습니다.
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;
내가 달성하고자하는 것은 하나의 변수 (이 경우 ‘php’)를 설정하고 구성에 포함시키는 것입니다.
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;
그러나 nginx 가이 구성의 변수를 무시한다는 점은 솔기입니다. 내가 잘못했거나 위치 경로에서 변수를 사용할 수 없습니까?
답변
변수는 어디에서나 선언하거나 지시문에서 사용할 수 없습니다.
set
지시문 의 문서 는 다음과 같습니다.
Syntax: set $variable value; Default: — Context: server, location, if
즉각적인 결과는 http
블록 에서 사용자 정의 변수를 사용할 수 없다는 것 입니다.
업데이트 : 이 대화방 에서 AlexeyTen 과 토론하고 실험 한 후 .
access_log
제한이있는 변수를 포함 할 수 있습니다. 그중에서도 버퍼링 부족과 선행 슬래시를 변수로 선언해서는 안됩니다 .error_log
변수와 전혀 작동하지 않습니다.root
지시문은 변수를 포함 할 수 있습니다.server_name
지시문$hostname
은 변수와 같은 표기법으로 엄격한 값만 허용 합니다.