2010-10-07 58 views
1

有人能告訴我怎麼能在兩個端口上同時運行Django的?默認的Django配置只監聽端口8000.我想在端口xxxx上運行另一個實例。我想將所有請求重定向到此第二個端口以在我的Django應用程序中的特定應用程序。運行Django的多個端口

我需要通過一個Web服務器像nginx的,阿帕奇等與Django缺省安裝來完成這個,而不是

謝謝


比方說,我在我的Django應用兩個應用程序。現在我不是指兩個單獨的Django應用程序,而是「應用程序」目錄內的單獨文件夾。讓我們把這種app1app2

我想在端口8000的所有請求去app1和端口XXXX所有請求去app2

HTH。

回答

8

只要運行的./manage.py runserver兩個實例。您可以通過直接指定端口來設置端口:./manage.py runserver 8002以偵聽端口8002.

編輯我不太明白爲什麼要這樣做。如果您希望您的服務站點的不同部分兩臺服務器,那麼你實際上兩個網站,這將需要兩個獨立的settings.pyurls.py文件。然後你會運行的runserver每一個實例,通過適當的設置標誌:./manage.py runserver 8002 --settings=app1.settings

+0

不錯的主意。但那並不能完全解決我的問題。我應該更加明確。我會做一個編輯。 – 2010-10-07 16:49:18

1

內置的Web服務器是用於發展而已,所以你應該使用Apache或類似的在情況下,你需要在多個端口上運行。

在另一方面,你應該能夠只是開始的runserver多個實例啓動多臺服務器。只要你使用一個單獨的數據庫服務器,我不認爲這會有任何額外的問題。

3

另一件需要考慮的事情 - django的session會爲每個站點使用相同的會話cookie,並且自從cookies are not port specific以來,每次在Windows之間切換時都會遇到登出問題,除非您使用多個瀏覽器會話/私人在開發期間瀏覽。

雖然這是你需要做什麼登錄時作爲在同一網站上2個不同的用戶,登錄到2個不同的地點不同的本地主機端口都運行Django不具備這樣的工作。

一個簡單的解決辦法是寫一個簡單的中間件通過附加的端口號用於存儲您的會話ID的變量名稱解決此問題。 Here's the one I use