2011-09-28 26 views
2

關於從manage.py runserver命令開始的內置調試服務器,Django文檔聲明:「不要在類似於生產環境的任何東西中使用此服務器。」遠程運行時,Django內置的測試服務器有多危險?

如果我想在遠程計算機上通過ssh開發Django應用程序,將Nginx作爲運行Django調試服務器的代理是合理的事情嗎? Django調試服務器是不安全的,還是隻是不能處理大量的流量?

回答

4

the Django docs

請勿使用此服務器在生產環境。它沒有經過安全審計或性能測試。 (這就是它是如何會留下來。我們是在做Web框架,而不是Web服務器,所以提高了該服務器能夠處理生產環境是Django的範圍之外的業務。)

所以,這回答了後面兩個問題。至於前者,它取決於你的調試服務器是如何設置的。如果您的服務器暴露於公共Internet,沒有防火牆攔截端口8000,並且您打算使用runserver以外的默認127.0.0.1地址,請設置更「適當」的應用程序堆棧。

如果您打算使用nginx,爲什麼不使用suggested FastCGI configuration,以便您的調試環境與未來的生產環境更類似?

3

現代Web服務器具有各種與安全和性能相關的功能,Django開發服務器不具備這些功能。它是一個精簡的,非常基本的單線程服務器,用於開發。因此,文檔爲什麼說不在生產環境中使用它。

但是,人們會害怕這種說法。關鍵的定義點是開發。無論是在本地計算機還是遠程VPS或整個羣集上進行開發,都是重點。

如果服務器是公開的,它將面對黑客攻擊,破壞,DoS攻擊等。但是,如果沒有什麼重要的東西,只是一個運行在虛擬數據上的開發網站,它不會物。所以,是的,您可以將遠程服務器上的開發服務器用於開發目的。沒有什麼不對的。我唯一需要注意的是避免使用生產數據(例如使用生產數據庫中的轉儲進行開發),因爲這些數據可能會受到影響。否則,這沒什麼大不了的。

1

Django調試服務器是不安全的,還是隻是沒有建立處理大量的流量?

這是一個INSECURE,不適合重型交通!

將代理隱藏在測試服務器後面可能會解決其中的一些問題,但是如果您要花費相當多的工作量來處理相同數量的工作, ...正確的是WSGI。使用mod_wsgi,gunicorn,或者檢查一下這個更具前沿性的解決方案:http://bartek.im/blog/2012/07/08/simplicity-nginx-uwsgi-deployment.html。無論你做什麼....不要使用DJANGO測試服務器來生產環境!

相關問題