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 p>
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