포함 할 nginx 상대 경로


10

nginx conf 파일 include에서 현재 conf 파일을 기준으로 다른 conf 파일 을 지정하는 방법이 있습니까?

나는 쓰고 싶다 :

server {
  listen       80;
  server_name  localhost;

  include "../apis/basic.conf";

...
} 

2
아니. 모든 경로 중 하나를 절대 또는 접두사 경로를 기준으로 nginx.org/en/docs/configure.html
알렉세이 텐

1
파일 및 폴더 레이아웃을 추측 include apis/basic.conf;하면 아마도 효과가 있습니다. 예를 들어, 이 포함 은 구성 루트에 상대적이므로이 파일 도 포함 합니다 .
AD7six

답변:


4

include지시문에 대한 Nginx 문서는 상대 경로가 처리되는 방법을 문서화하지 않았습니다 (1.9.15 기준). C 코드에 대한 나의 독서는 Alexey Ten이 의견에서 제안한 것처럼 경로가 접두사 경로에 대해 절대적이거나 상대적이어야한다는 것입니다.

소스 코드에 대한 관련 링크 는 다음과 같습니다 .


1
방금 nginx 1.10.3에서 테스트했습니다. 에 설정하고 -p에 저장된 구성 파일을 .포함하여 시도 ./nginx.conf했습니다 /tmp. 찾을 수 없다고 말하면 오류가 발생합니다 /tmp/./nginx.conf. 어느 -p옵션은하지 않습니다, 또는 포함은 단지 설정 파일에 상대적 포함, 또는 내 nginx를 파손됩니다.
CMCDragonkai

-p옵션은 nginx명령이 구성 파일을 찾는 위치에만 영향을줍니다 . 를 사용 nginx -p . -c ./nginx.conf하면 nginx 명령이를 찾게 ./nginx.conf되고 그렇지 않으면을위한 접두사 경로를 찾습니다 ./nginx.conf.
CMCDragonkai

2

Alexy Ten이 위에서 언급 한 것과 유사하게 기본 접두사가 사용됩니다. 그러나이 StackOverflow 게시물 ( https://stackoverflow.com/a/25486871/1684819)에 따르면 -p 옵션을 제공 하여 기본 컴파일 된 경로 대신 모든 상대 경로를 참조 할 위치를 선언 할 수 있습니다 .

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