Configuración del servidor
Comiencemos ahora configurar el entorno del servidor que utilizaremos para alojar nuestro servidor. Este tutorial usa el servidor ubuntu. Comience actualizando los repositorios e instalando Python3 y Pip.
actualización de sudo apt-get
sudo apt -get actualización -y
sudo apt-get install python3 python3-pip -y
A continuación, necesitamos crear un directorio para almacenar el proyecto.
sudo mkdir/var/www/aplicación
CD/VAR/WWW/Aplicación
Cambiar la propiedad y los permisos del directorio:
sudo chown -r www-data: www-data/var/www/aplicación/
A continuación, instale los paquetes con APT (Flask y Gunicorn)
sudo apt-get install python3-flask python3-gunicorn
Procedamos ahora a inicializar una aplicación Flask. Comience por crear el principal.Py-Holds la aplicación y WSGI.py, que se ejecutará la aplicación.
sudo toque principal.py wsgi.py
Editar el principal.PY FILE Y CONFIGURAR su aplicación Flask y todas las rutas. Dado que este tutorial no es una guía de frasco, configuraremos una ruta básica y un mensaje de Hello World.
de Flask Import Flask
App = Flask (__ Nombre__)
@App.ruta("/")
Def Home ():
devolver "Nginx y Gunicorn
"
Editar el wsgi.archivo py y agregar el código para importar la aplicación y ejecutar como:
de la aplicación de importación principal
Si __name__ == "__main__":
aplicación.run (debug = true)
Finalmente, pruebe si está en funcionamiento llamando a Flask como:
$ Flask Run
* 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: APAGADO
* Ejecutando en http: // 127.0.0.1: 5000/ (presione Ctrl+C para dejar de fumar)
Intente acceder a la aplicación en http: // localhost: 5000.
Configuración de Gunicorn
Una vez que nuestra aplicación se ejecuta correctamente, podemos usar Gunicorn para probar la aplicación utilizando los comandos:
$ sudo gunicorn -trabajadores 5 wsgi: aplicación
[2021-03-19 09:19:34 +0000] [14047] [INFO] Inicio 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] Uso del trabajador: Sync
[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 Flask usando Gunicorn utilizando el número especificado de trabajadores. Luego llamamos al archivo wsgi: aplicación, que es el archivo e instancia de la aplicación para ejecutar.
Una vez que tenga la aplicación ejecutándose con Gunicorn, presione Ctrl + C para detener el servidor y configurar Nginx.
Use los comandos a continuación para instalar y ejecutar Nginx.
sudo apt -get install nginx -y
sudo systemctl iniciar 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 del servidor. Considere la siguiente configuración. Cambie la aplicación al nombre de su proyecto.
sudo nano/etc/nginx/sites disponible/aplicación.confusión
servidor
Escucha 80;
aplicación server_name;
access_log/var/log/nginx/aplicación.acceso.registro;
ERROR_LOG/VAR/LOG/NGINX/APLICACIÓN.error.registro;
ubicación /
incluir proxy_params;
proxy_pass http: // unix:/var/www/aplicación/aplicación.calcetín;
Proceda a crear un enlace al directorio habilitado para el sitio para habilitar el sitio web.
sudo ln -s/etc/nginx/sites disponible/aplicación.conf/etc/nginx/sites-habilitado/
Ahora reinicie el servicio NGINX como:
sudo systemctl reiniciar nginx
A continuación, necesitamos crear un archivo de la unidad Systemd para servir a la aplicación.
sudo nano/etc/systemd/sistema/aplicación.servicio
[Unidad]
Descripción = aplicación.Servicio: una solicitud de frascos con Gunicorn.
Después = red.objetivo
[Servicio]
Usuario = Data www
Grupo = Data www
WorkingDirectory =/var/www/aplicación/
Execstart =/usr/bin/gunicorn --workers 3 -unix:/var/www/aplicación.Sock WSGI: aplicación
[Instalar]
Wantedby = Multi-user.objetivo
Finalmente, guarde el archivo de la unidad, luego habilite y vuelva a cargar el demonio.
Aplicación de reinicio de SUDO SystemCTL.servicio
SUDO SystemCtl-Daemon-Re-Re-Reload
Ahora puede acceder a la aplicación utilizando la dirección IP o la dirección especificada en el archivo de configuración de Nginx. Es posible que deba agregarlo al archivo del host.
curl http: // aplicación
Http/1.1 200 OK
Servidor: werkzeug/0.dieciséis.1 Python/3.8.5)
Fecha: viernes, 19 de marzo de 2021 10:00:39 GMT
Tipo de contenido: texto/html
Content-longitud: 25
Último modificado: viernes, 19 de marzo de 2021 09:22:47 GMT
Conclusión
Este tutorial superó 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.