Technologieaustausch

Bereitstellen von Python-Webdiensten in einer Linux-Umgebung

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Fügen Sie hier eine Bildbeschreibung ein

„Mädchen, es hängt vom Glück ab, wann wir uns wiedersehen. Tu nicht so, als ob du dich nicht kennst. Zittere nicht, wenn du sagst: „Lange nicht gesehen“…“

Um eine in Python geschriebene Backend-API in einer Linux-Umgebung bereitzustellen, können Sie die folgenden detaillierten Schritte ausführen. In diesem Artikel geht es um die Vorbereitung der Umgebung, das Schreiben von APIs, die Verwendung von Gunicorn als WSGI-Server, die Konfiguration von Nginx als Reverse-Proxy und die Verwendung von Systemd zum Verwalten von Diensten.

1. Bereiten Sie die Umgebung vor

Installieren Sie Python

Wenn Python auf Ihrem Linux-System nicht installiert ist, können Sie es mit dem folgenden Befehl installieren:

sudo yum update
sudo yum install python3 python3-pip
  • 1
  • 2

Installieren Sie die erforderlichen Bibliotheken

Vorausgesetzt, Sie verwenden das Flask- oder Django-Framework, installieren Sie zunächst die erforderlichen Bibliotheken:

pip3 install flask  # 如果你使用的是 Flask
pip3 install django  # 如果你使用的是 Django
  • 1
  • 2

2. Schreiben Sie API-Code

Beispiel einer Flasche

Erstellen Sie ein einfaches Flask-API-Beispiel:

from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/api', methods=['GET'])
def api():
    return jsonify({'message': 'Hello, World!'})

if __name__ == '__main__':
    app.run(host='0.0.0.0')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

Django-Beispiel

Erstellen Sie ein neues Django-Projekt und fügen Sie die API hinzu:

django-admin startproject myproject
cd myproject
django-admin startapp myapp
  • 1
  • 2
  • 3

existieren myapp/views.py API-Ansicht hinzufügen in:

from django.http import JsonResponse
def api(request):
    return JsonResponse({'message': 'Hello, World!'})
  • 1
  • 2
  • 3

existieren myproject/urls.py Konfigurieren Sie das URL-Routing in:

from django.contrib import admin
from django.urls import path
from myapp.views import api

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/', api),
]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

3. Methode 1 – Direkter Start

Um eine Anwendung schnell in einer Entwicklungs- oder Testumgebung zu starten, können Sie sie direkt ausführen:

python main.py 或者 nohup python main.py
  • 1
Django-Beispiel:

Django verfügt über einen eigenen Entwicklungsserver, mit dem Sie beginnen können:

python manage.py runserver 0.0.0.0:8000
  • 1

Es wird empfohlen, Gunicorn in der Produktionsumgebung zu verwenden. Um die Leistung und Stabilität der Anwendung in der Produktionsumgebung sicherzustellen, wird die Verwendung von Gunicorn empfohlen.Waffenhorn Übernimmt als Anwendungsserver die Ausführung von Python-Code und die Multiprozessverwaltung.

4. Methode 2 – Gunicorn konfigurieren (WSGI-Server in der Produktionsumgebung)

Installieren Sie Gunicorn

Gunicorn installieren:

pip3 install gunicorn
  • 1

Führen Sie die Flask-Anwendung aus

Führen Sie die Flask-Anwendung mit Gunicorn aus:

gunicorn --bind 0.0.0.0:8000 app:app
  • 1

Führen Sie die Django-Anwendung aus

Verwenden Sie Gunicorn, um Django-Anwendungen auszuführen:

gunicorn --bind 0.0.0.0:8000 myproject.wsgi:application
  • 1

5. Verwenden Sie Nginx als Reverse-Proxy

Installieren Sie Nginx

Nginx installieren:

sudo yum install nginx
  • 1

Konfigurieren Sie Nginx

Konfigurationsdatei bearbeiten /etc/nginx/sites-available/default

server {
    listen 80;
    server_name your_domain_or_IP;

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

Nginx-Konfiguration neu laden:

sudo systemctl restart nginx
  • 1

6. Verwenden Sie Systemd, um Gunicorn zu verwalten

Erstellen Sie eine Systemd-Dienstdatei

Erstellen Sie eine neue Systemd-Dienstdatei:

sudo vim /etc/systemd/system/myproject.service
  • 1

Dienstkonfiguration hinzufügen

Flaschenanwendung
[Unit]
Description=Gunicorn instance to serve myproject
After=network.target

[Service]
User=your_user
Group=www-data
WorkingDirectory=/path/to/your/project
ExecStart=/usr/bin/gunicorn --workers 3 --bind unix:myproject.sock -m 007 app:app

[Install]
WantedBy=multi-user.target
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
Django-Anwendung

Wille ExecStart Ändern Sie die Zeile in:

ExecStart=/usr/bin/gunicorn --workers 3 --bind unix:myproject.sock -m 007 myproject.wsgi:application
  • 1

Starten und aktivieren Sie den Dienst

Starten und aktivieren Sie den Dienst:

sudo systemctl start myproject
sudo systemctl enable myproject
  • 1
  • 2

7. Überprüfen Sie den Servicestatus

Stellen Sie sicher, dass der Dienst ausgeführt wird:

sudo systemctl status myproject
  • 1

Auf diese Weise wird Ihre Python-API erfolgreich in der Linux-Umgebung bereitgestellt. Sie können die Konfiguration nach Bedarf an Ihre spezifischen Projektanforderungen anpassen. Ich hoffe, dieser ausführliche Leitfaden war hilfreich!