Heim > Backend-Entwicklung > Python-Tutorial > Bereitstellung von Flask -Anwendungen in Vultrieren

Bereitstellung von Flask -Anwendungen in Vultrieren

Christopher Nolan
Freigeben: 2025-02-08 08:31:09
Original
775 Leute haben es durchsucht

How to Deploy Flask Applications on Vultr

Secure Flask -Anwendungen mit GuniCorn, Nginx und Verschlüsseln

Bereitstellen

Flask ist ein Python -Framework zum Erstellen von Webanwendungen. Mit Flask können Entwickler das Routing leicht definieren, HTTP -Anforderungen und Antworten verarbeiten und dynamische Inhalte mithilfe von Jinja2 -Vorlagen rendern. Es unterstützt auch Erweiterungen, mit denen Entwickler Funktionen wie Datenbankzugriff, Formulierung und Benutzerauthentifizierung integrieren können.

In diesem Artikel wird erläutert, wie Sie mit Gunicorn -Anwendungen und CSRF -Schutz- und Inhaltssicherheitsrichtlinien (CSP) implementieren. Wir werden auch einen Reverse -Proxy mit Nginx einrichten und ein kostenloses SSL -Zertifikat über LECTS Encrypt zum Implementieren von HTTPS beantragen.

Bereitstellung auf vultroptimierter Cloud-Instanz

  1. Registrieren Sie sich und melden Sie sich beim Vultr -Kundenportal an.
  2. Navigieren Sie zur Produktseite.
  3. Wählen Sie aus dem Seitenmenü "Berechnen".
  4. Klicken Sie in der Mitte auf die Schaltfläche "Server bereitstellen".
  5. Wählen Sie "Optimiert Cloud Computing" als Servertyp.
  6. Wählen Sie den Serverspeicherort aus.
  7. ubuntu 24.04 als Betriebssystem auswählen.
  8. Wählen Sie das richtige Paket aus.
  9. Wählen Sie gegebenenfalls zusätzliche Funktionen aus.
  10. Klicken Sie auf "Jetzt abhängen".

Demo -Anwendungscode -Datei

hinzufügen

virtuelle Python -Umgebung einrichten

  1. python3-venv-Paket installieren: sudo apt install python3-venv
  2. Erstellen Sie eine virtuelle Umgebung: python3 -m venv myenv
  3. Aktivieren Sie die virtuelle Umgebung: source myenv/bin/activate

Demo -Anwendungscode -Datei

hinzufügen
  1. Klongithub -Repository: git clone https://github.com/mayankdebnath/flask-todo-demo.git
  2. Navigieren Sie zum Projektverzeichnis: cd flask-todo-demo/sample/
  3. Installieren von Kolben und Gunicorn -Paketen: pip install flask gunicorn
  4. Eingehende Verbindungen zu Port 5000: ufw allow 5000

Anwenden von CSRF -Schutz- und Inhaltssicherheitsrichtlinien

Cross-Site Request Forgery (CSRF) ist eine Sicherheitsanfälligkeit, mit der ein Angreifer nicht autorisierte Anfragen an verschiedene Websites stellen kann, die vom Benutzer vertrauen, die eine angemeldete Sitzung auf einer vertrauenswürdigen Website verwenden. WTForms ist eine Flask -Erweiterung, die den CSRF -Schutz standardmäßig integriert, um CSRF -Angriffe zu verhindern.

Inhaltssicherheitsrichtlinie (CSP) ist eine zusätzliche Sicherheitsebene für Webanwendungen, die sie vor böswilligen Angriffen schützen. CSP gibt an, in welchen Ressourcen der Browser auf einer bestimmten Webseite geladen werden kann. In der Regel konfiguriert der Website -Administrator den CSP, indem der Serverantwort der Webseite spezielle Header hinzugefügt wird. Der Browser erhält dann den CSP -Header und versteht, welche Ressourcen geladen werden dürfen. Talisman ist eine Flask -Erweiterung, die den Prozess des Hinzufügens von CSP zu Flask -Anwendungen vereinfacht.
  1. Installieren von Flask-WTF- und Talisman-Paketen: pip install flask-wtf talisman
  2. app.py Datei öffnen: nano app.py
  3. app.py -Datei bearbeiten, um Inhaltssicherheitsrichtlinien einzuschließen:
from talisman import Talisman

talisman = Talisman(
    app,
    content_security_policy={
        'default-src': ['\'self\''],
        'script-src': ['\'self\'', '\'unsafe-inline\'', 'https://code.jquery.com'],
        'style-src': ['\'self\'', '\'unsafe-inline\'', 'https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css', 'https://todoapp5.ddns.net/static/styles.css', 'https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css'],
    },
    force_https=True,
    session_cookie_secure=True,
    frame_options='DENY',
)
Nach dem Login kopieren
  1. in der App.py -Datei, importieren und konfigurieren Sie CSRF -Schutz:
from flask_wtf.csrf import CSRFProtect

app.config['SECRET_KEY'] = 'your_secret_key_here'
csrf = CSRFProtect(app)
csrf._csrf_request_token_key = 'X-CSRFToken'
Nach dem Login kopieren

Speichern und schließen Sie die Datei.

  1. Navigieren Sie zum Vorlagenverzeichnis: cd templates
  2. öffnen index.html Datei: nano index.html
  3. HTML -Seite bearbeiten, um die CSRF -Konfiguration einzuschließen:
var csrfToken = $('input[name="csrf_token"]').val();

$.ajaxSetup({
    beforeSend: function(xhr, settings) {
    if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type) && !this.crossDomain) {
    xhr.setRequestHeader("X-CSRFToken", csrfToken);
        }
    }
});
Nach dem Login kopieren

Speichern und schließen Sie die Datei. 8. Beenden Sie das Vorlagenverzeichnis: cd ..

Konfigurieren Sie Nginx als Reverse Proxy

nginx fungiert als Reverse -Proxy zwischen dem Webserver und dem Client. Es startet eingehende Anforderungen basierend auf Ihren Anforderungskonfigurationseinstellungen. In diesem Abschnitt konfigurieren wir die Anwendung für Reverse -Proxying für effiziente Anforderungsverarbeitung und Lastausgleich. Wir beantragen auch ein kostenloses SSL -Zertifikat von Let's Encrypt, um HTTPS zu implementieren, wodurch die Kommunikation zwischen Benutzern und Webservern geschützt wird.

  1. Anmelden Sie sich beim Vultr -Kundenportal an.
  2. Navigieren Sie zur Produktseite.
  3. Erweitern Sie das Dropdown-Menü des Netzwerks im Seitenmenü und wählen Sie DNS.
  4. Klicken Sie in der Mitte auf die Schaltfläche "Domänenname hinzufügen".
  5. Befolgen Sie die Einstellungsschritte, um Ihren Domänennamen hinzuzufügen und die IP -Adresse des Servers auszuwählen.
  6. Verwenden Sie Ihren Domain -Registrar, um die folgenden Hostnamen als primäre und sekundäre Namenserver für den Domänennamen zu setzen: ns1.vultr.com und ns2.vultr.com.
  7. Installieren von nginx: sudo apt install nginx
  8. Erstellen Sie eine neue Nginx -Konfigurationsdatei: sudo nano /etc/nginx/sites-available/app.conf
  9. Fügen Sie die folgende Konfiguration in die Datei ein:
server {
    listen 80;
    listen [::]:80;

    server_name <your_domain>;

    location / {
        proxy_pass http://127.0.0.1:5000/;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
Nach dem Login kopieren
  1. Virtuelle Hostkonfiguration aktivieren: sudo ln -s /etc/nginx/sites-available/app.conf /etc/nginx/sites-enabled/
  2. Testen Sie die Nginx -Konfiguration: sudo nginx -t
  3. neu laden Nginx: sudo systemctl reload nginx
  4. Eingehende Verbindungen zu Ports 80 und 443: sudo ufw allow 80/tcp && sudo ufw allow 443/tcp
  5. Installieren des Certbot -Pakets: sudo snap install --classic certbot
  6. Beantragen Sie ein SSL -Zertifikat: sudo certbot --nginx -d example.com -d www.example.com (ersetzen Sie Beispiel.com durch Ihren Domänennamen)
  7. Starten Sie den Gunicorn -Server: gunicorn -b 0.0.0.0:5000 app:app
  8. Sie können jetzt über https://<your_domain></your_domain> auf Ihre Flask -App zugreifen.

Mach mehr mit der Python -App auf Vultr

  • Container -Python -Webanwendungen
  • Containerize
  • Python und Pip auf Ubuntu 24.04
  • installieren
  • Verwenden von Vultr Cloud -Inferenz in Python
  • detaillierte Diskussion wichtiger KI/ML-Python-Pakete
  • AI-gesteuerte Suche mit Python- und Milvus-Vektor-Datenbanken
  • Aufgaben für natürliche Sprachverarbeitungsaufgaben mit Python
ausführen

Schlussfolgerung

In diesem Artikel wird untersucht, wie Flask -Anwendungen mithilfe von Nginx Reverse -Proxy und Gunicorn bereitgestellt und CSRF -Schutz und CSP implementiert werden. Wir schützen auch die Sicherheit unserer Anwendungen, indem wir SSL -Zertifikate hinzufügen und den HTTPS -Zugriff aktivieren.

Dieser Artikel wird von Vultr gesponsert. Vultr ist die weltweit größte private Cloud Computing -Plattform. Vultr wird von Entwicklern geliebt und hat mehr als 1,5 Millionen Kunden in 185 Ländern flexible und skalierbare globale Cloud -Computing-, Cloud -GPU-, Bare -Metal- und Cloud -Speicherlösungen zur Verfügung gestellt. Erfahren Sie mehr über Vultr

Das obige ist der detaillierte Inhalt vonBereitstellung von Flask -Anwendungen in Vultrieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage