Warum ist es eine Flasche App mit Apache oder Nginx bereitstellen zu empfehlen? Es hat einen Server eingebaut, kann es nicht einfach durch Ausführen python app.py
und Öffnen der richtigen Ports in der Firewall bereitgestellt werden?Warum sollte Flask nicht mit dem eingebauten Server bereitgestellt werden?
Antwort
Der WSGI-Server von Werkzeug ist nicht für den Einsatz in der Produktion gedacht. Es wird als ein Komfort während der Entwicklung bereitgestellt. Es wurde nicht im Hinblick auf Sicherheit oder Leistung entwickelt (standardmäßig verarbeitet es nur jeweils eine Anfrage). Verwenden Sie einen echten WSGI-Anwendungsserver wie uWSGI oder Gunicorn, um Leistung zu erzielen, und stellen Sie die Leistung über einen echten Webserver wie Nginx für Leistung und Sicherheit zur Verfügung. Webserver können Anfragen/Antworten in Warteschlangen stellen, statische und andere Inhalte gleichzeitig bereitstellen und SSL verarbeiten. WSGI-Server können mehrere Anforderungen in einer App effizient koordinieren. Werkzeug wurde als WSGI-Bibliothek konzipiert, nicht als Webserver oder WSGI-Server.
Die docs sagen Ihnen direkt nicht den Entwicklungsserver in Produktion zu verwenden.
Sie können den integrierten Server während der Entwicklung verwenden, Sie sollten jedoch eine vollständige Bereitstellungsoption für Produktionsanwendungen verwenden. (Verwenden Sie nicht den eingebauten Entwicklungsserver in der Produktion.)
Zusätzlich Web-Server als root ausführen (dann Privilegien fallen), so dass sie auf den Standard-Ports 80 und 443. Sie sollen nie Lauf eines Anwendung als root, und so würden Sie nur in der Lage sein, an Ports über 1024 zu binden, so dass Benutzer den Port und nicht nur die Domäne kennen müssten.
„Sie sollten niemals eine Anwendung als root ausführen“ dies keinen Sinn überhaupt macht. nginx wird standardmäßig auch als root ausgeführt. Wenn Sie flask als root betreiben, können Sie zumindest port 80 bedienen, was sonst sehr schwer zu erreichen ist.
- 1. FileSystemRights werden nicht bereitgestellt
- 2. Wie wird DevExpress auf dem Server bereitgestellt?
- 3. Warum wird gulp-rsync nicht bereitgestellt?
- 4. eb awscli kann nicht aus dem git-Verzeichnis bereitgestellt werden
- 5. Warum werden Python-Bibliotheken nicht als Pyc bereitgestellt?
- 6. iOS App kann nicht auf dem Gerät bereitgestellt werden
- 7. Warum werden Dateilöschungen nicht von "git add --all *" bereitgestellt?
- 8. Wo werden node.js-Apps auf einem Linux-Server bereitgestellt?
- 9. In Python, warum "Objekt" aus dem eingebauten Modul importieren?
- 10. Flask-App funktioniert nicht, wenn sie auf Heroku bereitgestellt wird
- 11. Anwendung wird nicht auf dem Gerät bereitgestellt
- 12. GoogleAppEngine-Projekt kann nicht bereitgestellt werden!
- 13. Kann eine WAR-Datei auf einem beliebigen Server bereitgestellt werden?
- 14. App kann nicht auf SharePoint bereitgestellt werden
- 15. Interner Server Fehler Flask
- 16. Java-Programm wurde nicht mit Wildfly-Server bereitgestellt
- 17. Wie werden RequestContext-Daten dem Konstruktor eines Domänenobjekts bereitgestellt?
- 18. Windows Universal App muss vor dem Debuggen bereitgestellt werden
- 19. Kann nicht auf Heroku bereitgestellt werden
- 20. Warum kann ich eine Processing.js-Skizze nicht mit Flask laden?
- 21. Excel-Export mit Flask-Server und xlsxwriter
- 22. Kann AppFabric unter Windows 7 bereitgestellt werden?
- 23. Abhängigkeiten werden nicht in Openshift [Flask]
- 24. Flask-App nicht starten auf Heroku-Server
- 25. Wie wird die Flask + Python-Anwendung auf Windows Azure bereitgestellt?
- 26. Warum erhalte ich den Fehler 404 nicht gefunden, obwohl der Link auf dem Server ist?
- 27. Wann sollte Flask.g verwendet werden?
- 28. Warum sollte das nicht kompilieren?
- 29. Warum sollte ein Software-Entwicklungsprozess eingeführt werden?
- 30. Warum sollte ein TypedArray recycelt werden?
Das ist Ihre Meinung, auch sehr falsch, könnte ich hinzufügen. – ishaan