與生產環境中的Flask安全捆綁的服務器是否可以部署?如果沒有,我應該用什麼來在生產中部署Flask?與Flask安全捆綁在一起的服務器是否可用於生產?
回答
基本上沒有。內置的開發服務器在生產環境中部署不安全。
內置開發服務器就是爲了這一點。爲了在生產中使用,您應該遵循詳細的步驟here之一。
這些包括實現WSGI規範不同的服務器,如Apache/mod_wsgi或這些獨立WSGI服務器http://flask.pocoo.org/docs/deploying/wsgi-standalone/
一個也有提供
沒有uWSGI和FastCGI選項。捆綁的服務器是開發服務器。它的設計不考慮生產環境。
- 默認情況下,它一次不會處理多個請求。
- 如果您打開調試模式並彈出一個錯誤消息,它會打開一個允許在您的服務器上執行任意代碼的shell(想想
os.system('rm -rf /')
)。 - 開發服務器不能很好地擴展。
瓶使用WERKZEUG的發展服務器,文件說,同樣的事情:
開發服務器是不是要在生產系統中使用。它是專門爲開發目的而設計的,在高負載下表現不佳。部署設置請看Application Deployment頁面。
推薦的方法是使用use a production WSGI server來運行您的Flask應用程序。有一整個章節專門部署在文檔:Deployment Options
如果你是服務如圖片或視頻的任何靜態資產,需要低級別的緩存,或有更高的併發性的要求,建議使用一個Web服務器像nginx並讓它處理您的所有請求。
在蹩腳的ASCII形式:
+----------+
| Client 2 |
+----------+
|
V
+----------+ +-------+ +----------+
| Client 1 |----->| nginx |<-----| Client 3 |
+----------+ +-------+ +----------+
^
|
V
/--------------------\
| useful nginx stuff |
| like asset serving |
| and rate limiting |
\--------------------/
|
V
+-------------+
| WSGI server |
+-------------+
要真正運行的WSGI服務器過程中,您可以使用Supervisor。如果服務器出於某種原因失敗,它會自動重新啓動服務器,保留日誌並作爲守護程序運行,以便在服務器引導時啓動服務。
我使用'supervisor' +'gunicorn' +'nginx'。這是很容易安裝和維護。 –
「它一次不會處理多個請求」 - 不正確,請參閱線程和處理參數:http://werkzeug.pocoo.org/docs/0.11/serving/ – HaveAGuess
「如果彈出錯誤,它會打開建立一個允許在你的服務器上執行任意代碼的shell「 - 不是debug = True模式嗎? – HaveAGuess
雖然重量輕且易於使用,但Flask的內置服務器不適合生產,因爲它不能很好地擴展,默認情況下一次只能提供一個請求。 http://flask.pocoo.org/docs/0.12/deploying/
- 1. 在生產win2008 Web服務器上安裝SVN是否安全?
- 2. HTTP包服務器在生產中是否安全使用?
- 3. 生產服務器上的捆綁安裝失敗
- 4. 在生產服務器上安裝VS.NET是否安全並可以接受?
- 5. 捆綁包是否全局安裝gems
- 6. 爲什麼捆綁包不捆綁在一臺服務器上?
- 7. Amazon SDK是否需要安裝在生產服務器上?
- 8. 「流星跑 - 生產」與MONGO_URL與捆綁
- 9. RVM和捆綁在生產
- 10. 捆綁安裝--without生產錯誤
- 11. Oracle應用服務器OC4J是否與Oracle數據庫驅動程序ojdbc14.jar捆綁在一起?
- 12. 生產服務器上的全球化3不起作用
- 13. Flash Builder 4 Standard是否與FlexUnit捆綁在一起?
- 14. Java密碼擴展(JCE)是否與JRE捆綁在一起?
- 15. 將emplace_back與unique_ptrs的容器一起使用是否安全?
- 16. MongoDB單一服務器安全性和生產環境的可靠性?
- 17. 用於生產服務器的Wt httpd
- 18. 捆綁資源的安全
- 19. 非常規將Web套接字服務器與REST API捆綁在一起?
- 20. 與osgi捆綁在一起的非osgi
- 21. 解釋CouchDB的網站服務,CouchDB是否與Apache捆綁在一起,它是如何工作的?
- 22. rel =「preload」是否可以與HTTP服務器一起工作?
- 23. 在生產服務器/機器上安裝Zend服務器
- 24. Rijndael是否足夠安全地用於生產系統?
- 25. 多次產生ndb.Future是否安全?
- 26. 捆綁安裝從一個新的服務器由於git ssh密鑰錯誤
- 27. 捆綁Angular2生產:GULP
- 28. 如何編寫生產服務器測試與OneServerPerSuite一起玩
- 29. 如何判斷我的應用程序是否與Mono捆綁在一起,而不是與Mono一起執行?
- 30. 將eclipse.ini與可展開功能中的產品捆綁在一起?
是否有可能得到2014年更新到這個答案?「基本上不」是含糊不清的,因爲+ ensnare問了兩個問題。 –
已更新答案以消除歧義。答案的其餘部分似乎仍然是完全有效的。鏈接仍然指向最新的燒瓶文檔。 –