2011-03-19 66 views
2

所以我一直在研究我的第一個Django/Python項目,並且讓我的生產服務器正常運行。我想知道是否有可能讓Python/FastCGI(不太確定哪個是負責任務的)重新編譯我的代碼。截至目前,當我上傳更新的代碼時,我需要重新啓動服務器才能進行更改。我讀過你可以添加一些mysite.fcgi文件給lighttpd,這樣看來你已經更新了代碼,你可以對Nginx/FastCGI做同樣的事情嗎?如何讓Python/Nginx/FastCGI在更新/更改時自動重新編譯代碼?

+0

一般而言,您不希望在生產環境中這樣做,因爲您必須統計所使用的所有文件,這些文件通常會降低所有文件的速度。 – dietbuddha 2011-03-19 18:25:37

回答

2

爲任何其他人感興趣的是我的問題..這是隻能解決部分問題,但我在這裏結束了發現我的回答:How to gracefully restart django running fcgi behind nginx?

您只需運行該腳本(我要修改有點),每次你編輯你的代碼時,它都會正常地重啓所有的東西而不會丟失連接。

1

這是一個來自mod_wsgi項目的general guide,概述瞭如何監視來自app_wsgi.py的代碼更改,並在任何模塊發生更改時重新啓動當前進程。您需要重新啓動Python進程,因爲線程爭奪模塊可能意味着新加載的模塊已經過時了來自其他模塊的引用,這些模塊仍然在等待被發現用於重新加載。

如果你想要一些與nginx,Django和wsgi應用程序很好地結合的東西,請查看Spawning作爲你的wsgi服務器。這是代碼重新加載的方法就像獲得的優雅一樣。

它有很好的文檔,有詳細記錄的請求處理模型,它只是起作用,這使得它很容易配置。從現在開始,你需要不到五分鐘的時間,讓你的Django實例在Spawning上運行。這是另一個topical blog讓你的果汁運行。

+1

在Apache/mod_wsgi文檔中描述的代碼監視是針對mod_wsgi的,並且可能無法正常運行,或者根本無法與其他主機機制一起運行。 – 2011-03-19 15:07:19

+0

謝謝,我會看看那個。 – Chris 2011-03-19 15:28:42

相關問題