- Un servidor con acceso SSH
- Servidor web Nginx ejecutándose en el servidor (instalación cubierta)
- Pitón
- Eres un usuario de sudo.
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 updatesudo 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 / applicationcd / 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-gunicornProcedamos 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.pyEdita 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 Matrazapp = 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 principalif __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 -ysudo 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.confservidor
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 nginxA 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.Serviciosudo 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ónHTTP / 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.