위치의 nginx 설정 변수 업데이트됩니다. 질문에 네

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은 변수와 같은 표기법으로 엄격한 값만 허용 합니다.

답변