Compartir tecnología

Implementación de servicios web Python en un entorno Linux

2024-07-12

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

Insertar descripción de la imagen aquí

"Chica, depende de la suerte cuando nos volvamos a encontrar. No finjas que no se conocen. No tiembles cuando digas "Cuánto tiempo sin verte"..."

Para implementar una API de backend escrita en Python en un entorno Linux, puede seguir los pasos detallados a continuación. Este artículo cubrirá la preparación del entorno, la escritura de API, el uso de Gunicorn como servidor WSGI, la configuración de Nginx como proxy inverso y el uso de Systemd para administrar servicios.

1. Preparar el ambiente

Instalar Python

Si Python no está instalado en su sistema Linux, puede usar el siguiente comando para instalarlo:

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

Instalar las bibliotecas necesarias

Suponiendo que está utilizando el marco Flask o Django, primero instale las bibliotecas necesarias:

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

2. Escribe código API

Ejemplo de matraz

Cree un ejemplo simple de Flask API:

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

Ejemplo de Django

Cree un nuevo proyecto Django y agregue la API:

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

existir myapp/views.py Agregar vista API en:

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

existir myproject/urls.py Configure el enrutamiento de URL en:

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étodo 1: inicio directo

Para iniciar rápidamente una aplicación en un entorno de desarrollo o prueba, puede ejecutarla directamente:

python main.py 或者 nohup python main.py
  • 1
Ejemplo de Django:

Django tiene su propio servidor de desarrollo, con el que puedes empezar:

python manage.py runserver 0.0.0.0:8000
  • 1

Se recomienda utilizar Gunicorn en el entorno de producción. Para garantizar el rendimiento y la estabilidad de la aplicación en el entorno de producción, se recomienda utilizar Gunicorn.Gunicorn Como servidor de aplicaciones, maneja la ejecución de código Python y la gestión multiproceso.

4. Método 2: configurar Gunicorn (servidor WSGI en entorno de producción)

Instalar Gunicorn

Instalar Gunicorn:

pip3 install gunicorn
  • 1

Ejecute la aplicación Flask

Ejecute la aplicación Flask usando Gunicorn:

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

Ejecute la aplicación Django

Utilice Gunicorn para ejecutar aplicaciones Django:

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

5. Utilice Nginx como proxy inverso

Instalar nginx

Instalar Nginx:

sudo yum install nginx
  • 1

Configurar Nginx

Editar archivo de configuración /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

Vuelva a cargar la configuración de Nginx:

sudo systemctl restart nginx
  • 1

6. Utilice Systemd para administrar Gunicorn

Crear archivo de servicio Systemd

Cree un nuevo archivo de servicio Systemd:

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

Agregar configuración de servicio

Aplicación en matraz
[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
aplicación django

Voluntad ExecStart Cambie la línea a:

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

Iniciar y habilitar el servicio.

Inicie y habilite el servicio:

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

7. Verificar el estado del servicio

Asegúrese de que el servicio se esté ejecutando:

sudo systemctl status myproject
  • 1

De esta manera, su API de Python se implementa con éxito en el entorno Linux. Puede ajustar la configuración según sea necesario para satisfacer las necesidades específicas de su proyecto. ¡Espero que esta guía detallada haya sido útil!