2012-08-10 78 views
1

目前,我有一臺運行nginx的家庭服務器(Ubuntu),我在其中使用代理傳遞以將請求傳遞給django。我使用gevent作爲我的wsgi服務器。將Nginx作爲服務部署Django

它一切正常,直到服務器關閉,無論是因爲任何原因或某事崩潰(電力)我重新啓動服務器。由於nginx是一項服務,當服務器重新啓動時,nginx也會啓動。但我的Django應用程序不。所以我必須手動去我的每個django項目,激活他們的virtualenvs,然後啓動gevent過程。至少可以說這是非常煩人的。

是否有自動處理所有這些標準方法?

回答

7

您需要爲UpstartSupervisor設置腳本。就個人而言,我更喜歡使用主管。這裏是我用來運行我的gunicorn實例的腳本:

[program:gunicorn] 
command=/path/to/virtualenv/bin/python manage.py run_gunicorn -c /path/to/gunicorn.conf.py 
directory=/path/to/django/project 
user=www-data 
autostart=true 
autorestart=true 
redirect_stderr=True 
+0

到目前爲止看起來非常好。然而'supervisord'本身並不在電腦啓動時啓動。有沒有辦法做到這一點?我無法在文檔中找到。 – miki725 2012-08-12 04:44:36

+0

它應該。你是如何安裝它的?如果你只是'sudo apt-get install supervisor',它會自動創建一個運行腳本並將其放入init.d中。 – 2012-08-13 14:33:29

+0

哦。我做了安裝。感謝名單 – miki725 2012-08-13 19:10:58

1

請考慮使用流程管理器爲您處理此問題。我喜歡supervisor

你告訴它如何啓動你的各種進程,然後它在後臺運行(就像nginx),並會在重新啓動時自動啓動並啓動你的各種django後端進程。