Nginx. 서버 지시어 상속.


9

다음과 같이 건설을 줄일 수있는 방법이 있습니까?

server { 
  server_name regular_site; 
  location /api/ { 
     proxy_pass 127.0.0.1:5000;
  } 
  location / { 
     proxy_pass 127.0.0.1:3000;
  } 
} 

server { 
  server_name mobile_site; 
  location /api/ { 
     proxy_pass 127.0.0.1:5000;
  } 
  location / { 
     proxy_pass 127.0.0.1:3001;
  } 
} 

server api { 
  location /api/ { 
     proxy_pass 127.0.0.1:5000;
  } 
}

server extends api { 
  server_name regular_site;
  location / { 
     proxy_pass 127.0.0.1:3000;
  } 
} 

server extends api { 
  server_name mobile_site;
  location / { 
     proxy_pass 127.0.0.1:3001;
  } 
} 

API 섹션을 제거하는 다른 조언은 환영합니다.


FAQ를 읽으십시오. 귀하의 질문이이 사이트에 대한 주제가 아닌 것으로 보입니다.
HopelessN00b

@ HopelessN00b는 그렇습니다. 그러나 여기에 nginx에 관한 3000 가지 질문이 있습니다.이 경우에는 이상합니다. 이 질문은 stackoverflow에 대한 것이 아니라고 확신합니다.
Nikolay Fominyh

답변:


13

include진술로 쉽게 할 수 있습니다 .

/etc/nginx/conf/api_defaults.conf

location /api/ { 
  proxy_pass 127.0.0.1:5000;
}    

그런 다음 기본 vhost구성에서.

/etc/nginx/sites-enabled/my_new_api.conf

server my_new_api {  
  server_name mobile_site;

  include "/etc/nginx/conf/api_defaults.conf";

  location / { 
    proxy_pass 127.0.0.1:3001;
  }         
}

즉, 위치 블록은 서버 블록으로 상속되지 않습니다. 이것은 가상 호스트 외부에 정의 된 위치를 모든 가상 호스트가 상속하는 아파치가하는 것과는 다릅니다. Nginx를 사용하면 각 서버 블록에 공통 구성을 명시 적으로 포함시켜야합니다.
JM Becker
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.