2013-12-20 2 views
0

내 가상 호스트에 대한 다음의 nginx 설정이 있습니다Nginx에 서로 다른 위치

server { 
    listen  80; 
    server_name myproject; 

    location/{ 
     root /var/www/project1; 
    } 

    location /project2 { 
     root /var/www/project2; 
    } 
} 

그러나 웹 서버는 다음과 같은 오류 보여줍니다

location "/" is outside location "/project2" 

내가 처음 열려을 프로젝트를 통해 : http://myproject 및 두 번째 프로젝트를 통해 http://myproject/project2

내 구성에는 어떤 문제가 있습니까?

답변

0

server{} 블록에는 root 만 있어야합니다. 여기 Nginx 함정에 대해 읽으십시오 : http://wiki.nginx.org/Pitfalls 그리고 'Root inside location block'에 대한 부분을보십시오.

root을 위치 블록 외부에두고 /var/www으로 설정하십시오. project1의 색인 파일 (및 기타 파일)을 /var/www에 두십시오. 폴더 (/var/www/project2)를 만들고이 폴더에 project2의 인덱스 등을 배치합니다.

이 프로젝트에 대해 다른 설정을 지정하지 않는 한 location /project2 {} 부분을 생략 할 수 있습니다. 설정이 project1과 완전히 다른 경우 project2의 모든 내용을 다른 server{} 블록으로 이동하고 그 루트 및 기타 설정을 지정하는 것이 좋습니다.