Nginx

Cómo usar Nginx con Flask.

Cómo usar Nginx con Flask.
Python es un lenguaje de programación genial, fácil de aprender y todopoderoso, y con marcos como Django y Flask, podemos usarlo para crear aplicaciones web completas. Una vez que creamos una aplicación web usando bibliotecas y marcos como Flask, necesitamos alojarla en un servidor y exponerla al público. Este tutorial explica cómo alojar su aplicación web en un servidor que ejecuta Nginx usando Gunicorn. Antes de comenzar con Flask y Gunicorn, asegúrese de cumplir con los siguientes requisitos:

Configurar el servidor

Comencemos ahora a configurar el entorno del servidor que usaremos para alojar nuestro servidor. Este tutorial usa el servidor Ubuntu. Comience actualizando los repositorios e instalando Python3 y Pip.

sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install python3 python3-pip -y

A continuación, necesitamos crear un directorio para almacenar el proyecto.

sudo mkdir / var / www / application
cd / var / www / application

Cambiar la propiedad y los permisos del directorio:

sudo chown -R www-data: www-data / var / www / application /

A continuación, instale los paquetes usando apt (flask y Gunicorn)

sudo apt-get install python3-flask python3-gunicorn

Procedamos ahora a inicializar una aplicación de matraz. Empiece por crear el principal.py contiene la aplicación y wsgi.py, que hará que la aplicación se ejecute.

sudo toque principal.py wsgi.py

Edita el principal.py y configure su aplicación Flask y todas las rutas. Dado que este tutorial no es una guía de Flask, configuraremos una ruta básica y un mensaje de hola mundo.

desde el matraz de importación Matraz
app = Frasco (__ nombre__)
@app.ruta("/")
def hogar ():
regreso "

Nginx y Gunicorn

"

Edita el wsgi.py, agregue el código para importar la aplicación y ejecútelo como:

desde la aplicación de importación principal
if __name__ == "__main__":
aplicación.ejecutar (debug = True)

Finalmente, pruebe si está en funcionamiento llamando a flask como:

$ matraz correr
* Medio ambiente: producción
ADVERTENCIA: este es un servidor de desarrollo. No lo use en una implementación de producción.
Utilice un servidor WSGI de producción en su lugar.
* Modo de depuración: desactivado
* Se ejecuta en http: // 127.0.0.1: 5000 / (Presione CTRL + C para salir)

Intente acceder a la aplicación en http: // localhost: 5000.

Configuración de Gunicorn

Una vez que nuestra aplicación se esté ejecutando con éxito, podemos usar Gunicorn para probar la aplicación usando los comandos:

$ sudo gunicorn --workers 5 wsgi: aplicación
[2021-03-19 09:19:34 +0000] [14047] [INFO] Arranque de gunicorn 20.0.4
[2021-03-19 09:19:34 +0000] [14047] [INFO] Escuchando en: http: // 127.0.0.1: 8000 (14047)
[2021-03-19 09:19:34 +0000] [14047] [INFO] Usando trabajador: sincronización
[2021-03-19 09:19:34 +0000] [14049] [INFO] Trabajador de arranque con pid: 14049
[2021-03-19 09:19:34 +0000] [14050] [INFO] Trabajador de arranque con pid: 14050
[2021-03-19 09:19:34 +0000] [14051] [INFO] Trabajador de arranque con pid: 14051
[2021-03-19 09:19:34 +0000] [14052] [INFO] Trabajador de arranque con pid: 14052
[2021-03-19 09:19:35 +0000] [14053] [INFO] Trabajador de arranque con pid: 14053

Los comandos anteriores ejecutan la aplicación del matraz usando Gunicorn usando el número especificado de trabajadores. Luego llamamos al archivo wsgi: app, que es el archivo y la instancia de la aplicación a ejecutar.

Una vez que tenga la aplicación ejecutándose con Gunicorn, presione CTRL + C para detener el servidor y configurar Nginx.

Utilice los siguientes comandos para instalar y ejecutar Nginx.

sudo apt-get install nginx -y
sudo systemctl start nginx
sudo systemctl habilitar nginx

El siguiente paso es editar la configuración de Nginx en el directorio habilitado para sitios y agregar el bloque de servidor. Considere la siguiente configuración. Cambia la aplicación al nombre de tu proyecto.

sudo nano / etc / nginx / sites-available / application.conf
servidor
escucha 80;
aplicación server_name;
access_log / var / log / nginx / application.acceso.Iniciar sesión;
error_log / var / log / nginx / appliation.error.Iniciar sesión;
localización /
incluir proxy_params;
proxy_pass http: // unix: / var / www / application / application.calcetín;

Proceda a crear un enlace al directorio habilitado para el sitio para habilitar el sitio web.

sudo ln -s / etc / nginx / sites-available / application.conf / etc / nginx / sites-enabled /

Ahora reinicie el servicio Nginx como:

sudo systemctl reiniciar nginx

A continuación, necesitamos crear un archivo de unidad systemd para servir la aplicación.

sudo nano / etc / systemd / system / application.Servicio
[Unidad]
Descripción = aplicación.service: una aplicación Flask que se ejecuta con Gunicorn.
Después = red.objetivo
[Servicio]
Usuario = www-data
Grupo = www-data
WorkingDirectory = / var / www / application /
ExecStart = / usr / bin / gunicorn --workers 3 --bind unix: / var / www / application.calcetín wsgi: aplicación
[Instalar en pc]
WantedBy = multiusuario.objetivo

Finalmente, guarde el archivo de la unidad, luego habilite y vuelva a cargar el demonio.

sudo systemctl reiniciar la aplicación.Servicio
sudo systemctl daemon-reload

Ahora puede acceder a la aplicación utilizando la dirección IP o la dirección especificada en el archivo de configuración nginx. Es posible que deba agregarlo al archivo del host.

curl http: // aplicación
HTTP / 1.1200 OK
Servidor: Werkzeug / 0.dieciséis.1 pitón / 3.8.5)
Fecha: viernes 19 de marzo de 2021 10:00:39 GMT
Tipo de contenido: texto / html
Longitud del contenido: 25
Última modificación: viernes 19 de marzo de 2021 09:22:47 GMT

Conclusión

Este tutorial repasó cómo configurar una aplicación Python Flask y servirla sobre Nginx usando Gunicorn. Considere la documentación individual para obtener más información sobre los servicios discutidos en este tutorial.

Cómo usar Xdotool para estimular los clics del mouse y las pulsaciones de teclas en Linux
Xdotool es una herramienta de línea de comandos gratuita y de código abierto para simular clics del mouse y pulsaciones de teclas. Este artículo cubri...
Los 5 mejores productos ergonómicos de mouse de computadora para Linux
¿El uso prolongado de la computadora causa dolor en la muñeca o los dedos?? ¿Sufre de rigidez en las articulaciones y constantemente tiene que dar la ...
Cómo cambiar la configuración del mouse y el panel táctil con Xinput en Linux
La mayoría de las distribuciones de Linux se envían con la biblioteca "libinput" de forma predeterminada para manejar eventos de entrada en un sistema...