2011-12-23 3 views
3

보통 저는 체로키를 사용하고 있습니다. 최신 크롬 출시와 함께 몇 가지 중요한 문제로 인해 당분간 내 생산성 서버를 nginx로 변경해야했습니다.Nginx : 프로젝트 루트가있는 여러 장고 프로젝트?

현재 구성이 체로키에서와 같이 작동하도록 노력하고 있습니다. 내가 아주 간단한 uwsgi 처리기 사용하고 :

location /project1 { 
      include uwsgi_params; 
      uwsgi_pass localhost:3032; 
    } 

잘 작동을,이 프로젝트는 myurl.com/project1 볼 수 있습니다. 그러나 django는 myurl.com을 프로젝트 루트로 사용합니다. 여러 프로젝트를 하나 개의 하위 도메인 : 내가 그것을 작동하는 방법을

예 프로젝트 1을/프로젝트 2에/프로젝트 1, 프로젝트 2에 등

장고 정규식 규칙은 "^ $"와 같은 모든 프로젝트에 작동합니다 : Project1의에서

:^$ ->/프로젝트 1 Project2에에서

:^$ ->/프로젝트 2 등

작업의 nginx이 얻을 수있는 방법이 있나요?

건배,

+0

'하나의 하위 도메인에 여러 프로젝트 : project1 on/project1, project2 on/project2 등 ': 하위 도메인이 아니라 하위 폴더입니다. 전혀 다른 것. 가상 호스트와 실제 하위 도메인을 만든 경우 모든 것이 훨씬 쉬울 것입니다. – Stefano

+0

은 다음과 같습니다. apps.myydomain.com/project1, apps.mydomain.com/project2 = 하나의 하위 도메인에 여러 프로젝트 – dvcrn

답변

1

의 nginx는 체로키 자동으로 SCRIPT_NAME을 설정하지 않습니다.

당신은

uwsgi_param의 SCRIPT_NAME/프로젝트 1로 강제 할 수 있습니다;

당신은 다음 uWSGI 당신이

설정을 자동으로이 작업을 수행 할 수 있으며, PATH_INFO를 다시 작성할 필요

uwsgi_modifier1 30

그래서 전체의 nginx의 구성 :

location /project1 { 

     include uwsgi_params; 
     uwsgi_param SCRIPT_NAME /project1; 
     uwsgi_modifier1 30; 
     uwsgi_pass localhost:3032; 
} 

또 다른 방법은 모든 일을 할 것입니다 uWSGI에서 --manage-script-name을 옵션으로 전달하고 nginx 설정을 그대로 둡니다.