我正在建立一個新的服務器機器,它將託管多個django網站。設置服務器使用django,virtualenv,gunicorn和nginx來託管多個域
我必須指出,我擁有(開發和絕對控制)所有將在服務器上運行的網站。
我相當肯定,網站的所有將使用同一版本:
- Django的
- gunicorn
- nginx的
- PostgreSQL和psycopg2(全部雖然有些網站會正在使用地理空間和其他擴展)
onl Ÿ件事,我知道Django的應用程序之間會有所不同是:使用
- Python模塊(這可能對Python版本需要影響)
我可以瞭解使用的virtualenv來管理的,其中一個實例項目有特定的python模塊(甚至是python版本要求),但對我來說(在資源方面),讓每個項目(通過virtualenv)都有單獨的django,nginx,gunicorn等等的安裝似乎很浪費我的問題是這樣的:
它是「可接受的」(在方案如以上概述或認爲是最佳實踐)至全局安裝Django,gunicorn,nginx的,PostgreSQL和psycopg2和簡單地使用的virtualenv只管理部件(例如python模塊/版本)在項目之間有所不同?
注意:在這種情況下,將有一個nginx服務器處理多個域。
最後但並非最不重要的是,是否可以使用virtualenv來管理不同項目中的不同postgreSQL擴展?
好的,謝謝你的輸入。但是nginx綁定到一個端口,很明顯,在每個virtualenv中安裝nginx是沒有意義的 - 因爲只有nginx的一個實例可以綁定到端口80(或443) - 我在這裏錯過了什麼嗎? –
你不能在virtualenv中安裝nginx。 Virtualenvs適用於Python庫。 nginx在系統級安裝,並代理到這些站點,每個站點都在virtualenv中運行。同樣,Postgres已安裝並全局運行,但每個env都安裝了psycopg。 –
你能否確認我的理解是否正確:[postgresql,nginx,virtualenv] < - 全局安裝,[django,gunicorn,python版本/模型等,pysopg2] < - 安裝在virtualenv中。具體請注意,* gunicorn *是在virtualenv。我很努力地看到這會如何工作(每個應用程序都有它自己的gunicorn實例),然而所有綁定到相同的端口(Apache2舊手在這裏...) –