Partage de technologie

Déploiement des services Web Python dans un environnement Linux

2024-07-12

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

Insérer la description de l'image ici

"Fille, ça dépend de la chance quand on se reverra. Ne prétends pas que tu ne te connais pas. Ne tremble pas quand tu dis "Ça fait longtemps que je ne te vois pas"..."

Pour déployer une API backend écrite en Python dans un environnement Linux, vous pouvez suivre les étapes détaillées ci-dessous. Cet article couvrira la préparation de l'environnement, l'écriture d'API, l'utilisation de Gunicorn comme serveur WSGI, la configuration de Nginx comme proxy inverse et l'utilisation de Systemd pour gérer les services.

1. Préparer l'environnement

Installer Python

Si Python n'est pas installé sur votre système Linux, vous pouvez utiliser la commande suivante pour l'installer :

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

Installer les bibliothèques nécessaires

En supposant que vous utilisez le framework Flask ou Django, installez d'abord les bibliothèques requises :

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

2. Écrivez le code API

Exemple de flacon

Créez un exemple d'API Flask simple :

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

Exemple Django

Créez un nouveau projet Django et ajoutez l'API :

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

exister myapp/views.py Ajouter une vue API dans :

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

exister myproject/urls.py Configurez le routage d'URL dans :

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. Méthode 1 - Démarrage direct

Pour démarrer rapidement une application dans un environnement de développement ou de test, vous pouvez l'exécuter directement :

python main.py 或者 nohup python main.py
  • 1
Exemple Django :

Django possède son propre serveur de développement, avec lequel vous pouvez démarrer :

python manage.py runserver 0.0.0.0:8000
  • 1

Il est recommandé d'utiliser Gunicorn dans l'environnement de production Afin de garantir les performances et la stabilité de l'application dans l'environnement de production, il est recommandé d'utiliser Gunicorn.Gunicorn En tant que serveur d'applications, gère l'exécution du code Python et la gestion multi-processus.

4. Méthode 2 - Configurer Gunicorn (serveur WSGI dans un environnement de production)

Installer Gunicorn

Installez Gunicorn :

pip3 install gunicorn
  • 1

Exécutez l'application Flask

Exécutez l'application Flask à l'aide de Gunicorn :

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

Exécutez l'application Django

Utilisez Gunicorn pour exécuter des applications Django :

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

5. Utilisez Nginx comme proxy inverse

Installer nginx

Installez Nginx :

sudo yum install nginx
  • 1

Configurer Nginx

Modifier le fichier de configuration /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

Rechargez la configuration de Nginx :

sudo systemctl restart nginx
  • 1

6. Utilisez Systemd pour gérer Gunicorn

Créer un fichier de service Systemd

Créez un nouveau fichier de service Systemd :

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

Ajouter une configuration de service

Application en flacon
[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
Application Django

Volonté ExecStart Remplacez la ligne par :

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

Démarrer et activer le service

Démarrez et activez le service :

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

7. Vérifiez l'état du service

Assurez-vous que le service est en cours d'exécution :

sudo systemctl status myproject
  • 1

De cette façon, votre API Python est déployée avec succès dans l'environnement Linux. Vous pouvez ajuster la configuration selon vos besoins pour répondre aux besoins spécifiques de votre projet. J'espère que ce guide détaillé vous a été utile !