Nginx : conf 파일과 관련된 루트 경로


17

root포함하는 conf 파일에 상대적인 경로 를 지정할 수 있습니까?

우리는 웹 응용 프로그램을 개발하고 응용 프로그램 app-nginx.conf별 구성으로 파일을 프로젝트 디렉토리에 보관합니다. 이 파일을 main에 포함 nginx.conf시키고 root필요한 프로젝트의 하위 디렉토리를 올바르게 참조하는 경로를 갖고 싶습니다 . 예:

# /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;
}

비슷한 구성으로 nginx를 시작한 후 nginx 는 앱 디렉토리가 아닌 ./appnginx 설치 디렉토리 ( /usr/local/Cellar/nginx/1.4.3/내 경우)와 관련된 경로를 확인 하려고 시도합니다 .

답변:


11

포함하는 conf 파일에 상대적인 루트 경로를 지정할 수 있습니까?

짧은 대답 : 아니요.

긴 대답 : Nginx는 기본적으로 컴파일 시간 --prefix과 같은 경로와 경로에 대해서만 알고 --conf-path있습니다 ( https://nginx.org/en/docs/configure.html ). 명령을 실행하여 Nginx가 사용하는 다양한 경로를 찾을 수 있습니다 nginx -V(자본 "V"). 따라서 --conf-pathnginx.conf파일이 상주하고 해당 경로가 상대 경로에 사용됩니다.

공식 문서 ( https://nginx.org/r/root ) 에 따르면 root지시문에는 다른 변수가 포함될 수 있습니다.

초기 답변을 게시한지 5 년 후에 명확하게 해주신 @cyker에게 감사드립니다!


포티 감사합니다. 불행히도 옵션 중 어느 것도 나를 위해 작동하지 않습니다. --prefix다른 nginx 서버에 영향을 줄 수 있으며 개인적 관점에서는 구성 파일과 비교하여 관리하기가 약간 더 어렵습니다. 그리고 nginx는 문맥 set외부 server에서 지시문으로 사용자 정의 변수를 만들 수 없으므로 app-nginx.conf 파일에서 절대 경로를 이동할 수 없습니다.
Anton Moiseev

따라서 해당 경로는 상대 경로에 사용됩니다. 나는 이것이 부정확하다고 생각합니다. 예를 들어 nginx는 옵션에 config dir을 사용 include하고 ssl_certificate, 같은 옵션에는 접두사 dir을 사용합니다 root. 각 옵션이 사용하는 옵션에 대한 전체 목록을 제시하지 않는 것 같습니다.
Cyker

@Cyker 당신이 맞아요. 지금 답변을 업데이트했습니다. 물론 완료되지 않았습니다. 그러나 원래 답변보다 낫습니다 (실제로 잘못되었거나 부정확했습니다).
Pothi Kalimuthu

Nginx를 Beginner에서 Pro로 읽고 있습니다. "위치 블록 내에서 루트 지시문의 사용법을 이미 보았습니다. 루트 지시문은 Nginx에게 / etc /의 정규화 된 경로 대신 /image/myimage.jpg를 반환하도록 지시합니다. nginx / html / app1 / image / myimage.jpg. " 그래서 IMHO 그것은 Nginx 설정이 상대 경로를 지원한다는 것을 의미합니까?
Webwoman

여기서 질문은 "루트"지시문과 "conf 파일의 상대 경로"를 지원할 수 있는지에 대한 것입니다.
Pothi Kalimuthu

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.