2011-12-23 23 views
3

通常我使用的是切諾基。由於最新Chrome版本的一些關鍵問題,我不得不暫時將我的高效服務器更改爲nginx。Nginx:帶項目根的多個Django項目?

目前試圖讓我的配置像在切諾基一樣工作。 我用一個很簡單的uwsgi處理程序:

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

工作正常,該項目可在myurl.com/project1。 但django以myurl.com作爲項目根目錄。

例子我怎麼想它的工作: 多個項目的子域:PROJECT1上/ PROJECT1,對項目2 /項目2等

Django的正則表達式規則「^ $」應該像每一個項目的工作:

在PROJECT1:^ $ - >/PROJECT1

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/PROJECT1迫使它;

然後需要重寫PATH_INFO,uWSGI可以爲你設置

自動執行此

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配置不變。