Red de conocimiento informático - Problemas con los teléfonos móviles - Python3 Gunicorn Nginx implementa el proyecto Flask

Python3 Gunicorn Nginx implementa el proyecto Flask

Introducción: Hemos estado usando python app.py para iniciar el proyecto cuando realizamos pruebas localmente, lo cual está bien para pruebas locales, pero no para producción.

Razones:

1. Puede tardar en responder

2. No se puede admitir alta concurrencia y subprocesos múltiples

3. No se pueden utilizar razonablemente los recursos del servidor

Entorno de producción: Centos7, Python3

Módulos necesarios: Gunicon, Nginx, Flask

I. Instalar Gunicorn

Gunicorn Sí Un servidor web eficiente, equivalente a Tomcat en Java. Gunicorn simplemente encapsula la implementación subyacente de HTTP. Gunicorn inicia el servicio y las solicitudes y servicios de los usuarios se transmiten a través de Gunicorn.

1. Cree un entorno virtual

Cargue el proyecto en el directorio especificado en el servidor, luego cree un entorno virtual para python3, ingrese al entorno virtual después de la activación y podrá ver los comandos en el entorno virtual El nombre del entorno virtual anterior. (En el pasado, cuando usaba el módulo Gunicorn, no usaba un entorno virtual. Como resultado, cuando comencé mi proyecto, seguía avisándome que no se podía encontrar el comando gunicorn. Puede ser que cuando Estaba usando el entorno global de Python, algunos módulos afectaron al módulo gunicorn. Posteriormente, este problema desapareció al usar un entorno virtual).

2. Instalar los módulos necesarios para el proyecto

3. Instalar gunicorn

2. Iniciar la configuración del proyecto

1. Crear un programa web simple

2. Iniciar el servicio

4 - Iniciar 4 procesos para distribuir el servicio

0.0.0.0 - Permitir el acceso de cualquier host

5000 - puerto de inicio (igual que el puerto de reenvío de nginx)

Aplicación: archivo de destino

Aplicación: módulo especificado

Sección complementaria: gunicorn y Relación nginx

gunicorn se puede utilizar para proporcionar servicios independientes, pero generalmente no se utiliza en entornos de producción. En primer lugar, los recursos estáticos (jscssimg) ocupan una gran cantidad de recursos de solicitud. Para gunicorn, debe prestar más atención a las solicitudes comerciales reales y al procesamiento, en lugar de desperdiciar recursos en solicitudes de recursos estáticos. Además, ejecutar gunicorn por sí solo no puede ejecutarse; en múltiples puertos. Equilibra la carga de múltiples procesos.

La función de nginx es compensar estos problemas. Primero, como servidor front-end, puede manejar todas las solicitudes de archivos estáticos, y luego, como servidor back-end, nginx reenviará solicitudes dinámicas al servidor back-end, para que podamos iniciar múltiples procesos gunicorn y luego dejar que nginx realizar solicitudes a múltiples procesos gunicorn. Realizar equilibrio de carga para aumentar la eficiencia y la capacidad del servidor. Finalmente, nginx también se puede configurar para manejar una gran cantidad de procesamiento relacionado con la seguridad, la autenticación y otros procesamientos, de modo que pueda concentrarse en el negocio de escribir su sitio web y dejar otras cosas no relacionadas con el negocio, como reenviar reglas a nginx. Hazlo.

Referencia: /p/da28ec28ef4b