Tema de implementación web (1): operación de Gunicorn y método de configuración

Gunicorn "Green Unicorn" es un servidor HTTP Python WSGI UNIX de alto rendimiento ampliamente utilizado, portado del proyecto Ruby's Unicorn (Unicorn), que utiliza el modo de trabajo previo a la bifurcación, tiene un uso muy simple y liviano Características como el consumo de recursos y el alto rendimiento.

Instalar gunicorn

$ sudo apt- obtener actualización 
$ sudo apt -get install gunicorn

Ejecute gunicorn:

$ gunicorn [OPCIONES] Nombre del módulo: nombre de la variable

El nombre del módulo es el nombre del archivo python, que puede ser la ruta completa + nombre del archivo python; el nombre de la variable es el WSGI invocable (Web Server Gateway) en el archivo python.

Ejemplos:

# filename : test.py 
def app (environmental, start_response):
 "" " Objeto de aplicación más simple posible " "" 
data = ' Hello, World! \ n ' 
status = ' 200 OK ' 
response_headers = [ 
( ' Content-type ' , ' text / plain ' ), 
( ' Content-Length ' , str (len (data))) 
] 
start_response (status, response_headers) 
return iter ([datos])

Ejecuta la aplicación:

$ gunicorn --workers = 2 test: aplicación

Parámetros de configuración comunes:

-c CONFIG, --config = CONFIG

Especifique un archivo de configuración (archivo py).

-b BIND, --bind = BIND

Enlace con el zócalo especificado.

-D, --demonio

Ejecutar el proceso de Gunicorn en forma de demonio en realidad pone este servicio en segundo plano para ejecutarse.

-w TRABAJADORES, - trabajadores = TRABAJADORES

El número de procesos de trabajo. Como se mencionó anteriormente, gunicorn es un modo de trabajador previo a la bifurcación, lo que significa que cuando se inicia gunicorn, se bifurca previamente un número específico de procesos de trabajador en el proceso principal. Cuando se procesan las solicitudes, gunicorn se basa en el sistema operativo para proporcionar equilibrio de carga. La cantidad es: (2 x $ num_cores) + 1

-k WORKERCLASS, --worker-class = WORKERCLASS

Tipo de proceso de trabajo: incluye sincronización (predeterminado), eventlet, gevent o tornado, gthread, gaiohttp.

--backlog INT

El número máximo de conexiones pendientes.

--chdir

Cambie al directorio de trabajo especificado.

- NIVEL de nivel de registro

La granularidad del registro de errores de salida, NIVEL válido son:


error de 
advertencia de 
información de depuración 
crítico
 - archivo de registro de acceso

Confirme que el archivo ARCHIVO se escriba en el registro de acceso. '-' Significa salida a salida estándar.

--error-logfile FILE, --log-file FILE

Confirme que el archivo ARCHIVO se escriba en el registro de errores. '-' Significa salida a salida de error estándar.

configuración de gunicorn

Gunicorn obtiene la configuración de tres lugares diferentes:

Configuración del marco (generalmente solo afecta a las aplicaciones de Paster)

Archivo de configuración (archivo python): la configuración en el archivo de configuración anulará la configuración del marco.

Línea de comando

La configuración del marco solo está relacionada con Paster (un marco web), no se discute; la configuración de la línea de comandos se muestra en la sección anterior; ahora vemos cómo configurar gunicorn con archivos de configuración:

El archivo de configuración debe ser un archivo python, solo escriba los parámetros en la línea de comando en el archivo py. Si necesita establecer qué parámetro, puede asignar un valor al parámetro en el archivo py. Por ejemplo:

# example.py 
bind = " 127.0.0.1:8000 " 
trabajadores = 2

Ejecute gunicorn:

$ gunicorn -c example.py test: aplicación

Es equivalente a:

$ gunicorn -w 2 -b 127.0.0.1:8000 prueba: aplicación

Por supuesto, el archivo de configuración también puede lograr una configuración más compleja:

# Gunicorn.py 
importación el registro
 de importación logging.handlers
 de logging.handlers importación WatchedFileHandler
 Importación OS
 Importación de multiprocesamiento 
el enlace = ' 127.0.0.1:8000 '    # vinculante IP y el puerto 
de retraso acumulado = 512         # escuchan cola de 
la chdir = ' / home / test / server / bin '  # gunicorn para cambiar al directorio de trabajo de destino 
timeout = 30    # timeout 
worker_class = ' gevent '  # usa el modo gevent, también puedes usar el modo de sincronización, el modo predeterminado es el modo de sincronización
= Trabajadores multiprocessing.cpu_count () * 2 + 1   # número de procesos 
Hilos = 2 # Especifica el número de hilos por proceso de abrir 
la LogLevel = ' info '  # nivel de registro, el nivel de registro se refiere al nivel del registro de errores, y registro de acceso No se puede establecer el nivel 
access_log_format = ' % (t) s% (p) s% (h) s "% (r) s"% (s) s% (L) s% (b) s% (f) s "" % (a) S ' '   # conjunto gunicorn formato de registro de acceso, el registro de errores no se pueden establecer 
"" " 
lo que significa que cada opción es la siguiente: 
H dirección remota 
L '-' 
U Actualmente '-', en puede ser usuario suelta el nombre futuros en 
T fecha de la solicitud 
r línea de estado (por ejemplo, `` GET / HTTP / 1.1 '') 
s estado 
b longitud de respuesta o '-'
f árbitro
Un agente de usuario 
T Solicitud Tiempo en segundos El 
tiempo de solicitud D en microsegundos 
L decimal Solicitud tiempo en segundos que 
p Identificación del Proceso 
"" " 
el AccessLog = " /home/test/server/log/gunicorn_access.log "    # archivo de registro de acceso 
del registro de errores = " / Inicio /test/server/log/gunicorn_error.log "     # archivo de registro de errores

Ejecute gunicorn:

$ gunicorn -c gunicorn.py prueba: aplicación

 

Supongo que te gusta

Origin www.cnblogs.com/qiu-hua/p/12680905.html
Recomendado
Clasificación