서버 {} 블록에서 변수로서 루트 위치 참조


11

내 nginx 서버 {} 블록에서 경로로 루트를 정의했습니다. 나중에이 경로를 어떻게 참조 할 수 있습니까?

이것이 내가 달성하려고하는 것입니다.

server {
    listen 80;
    root /var/www/foosite;

    ...

    include $root/*.ngaccess;
}

불행히도 $ root를 사용하면 작동하지 않습니다 (정의하지 않았기 때문에). Nginx는 루트 값에 액세스하는 방법을 제공합니까?

답변:


15

document_root변수를 원합니다 .


이렇게하기 : root / var / www / foosite / public /; $ document_root.ngaccess를 포함하십시오; "nginx : [emerg] open ()"/etc/nginx/$document_root/.ngaccess "오류가 발생했습니다 (2 : 해당 파일 또는 디렉토리 없음). $ document_root는 해결책이 될 것 같지만 뭔가 잘못 입력 했습니까? 이 게시물 (및 내가 만난 다른 사람들) forum.linode.com/viewtopic.php?t=7898에 따르면 변수를 include 문에 사용할 수 없습니다. 사실이라면 불행한 것입니다.
skyler

이는 nginx가 include시작시 지시어 만 평가한다는 것을 의미하며 , 모든 요청에 ​​대한 것이 아니라 의미가 있으므로 불행히도 달성하려는 것은 불가능하지 않은 것 같습니다.
mgorven

1
여기서도 문제가 발생했습니다. "경로 값에 $ document_root 및 $ realpath_root를 제외한 변수가 포함될 수 있습니다." nginx.org/en/docs/http/…
편집자
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.