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-path주 nginx.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.