> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Cómo usar Gunicorn

> Aprende a usar Gunicorn, un servidor HTTP para Python.

## Introducción

* Este artículo te guía a través del proceso de uso de Gunicorn, un servidor HTTP WSGI para Python.
* Antes de empezar, asegúrate de tener Python y Gunicorn instalados en tu entorno. Puedes instalar Gunicorn usando el siguiente comando:

```bash theme={null}
pip install gunicorn
```

## Uso básico

Para ejecutar una aplicación web de Python usando Gunicorn, necesitas tener una aplicación WSGI como flask, django o algún otro framework.\
Una vez que tengas tu aplicación lista, necesitas conocer el nombre del módulo y el nombre de la variable que contiene el objeto de la aplicación WSGI.\
Por ejemplo, si tienes una aplicación Flask en un archivo llamado `app.py` y la instancia de Flask se llama `app`, puedes ejecutarla con Gunicorn usando el siguiente comando:

```bash theme={null}
python -m gunicorn --bind 0.0.0.0:80 app:app 
```

En este comando:

* `python -m gunicorn` ejecuta Gunicorn como un módulo de python.
* `--bind 0.0.0.0:80` le indica a Gunicorn que escuche en todas las interfaces de red en el puerto 80.
* `app:app` especifica el nombre del módulo (`app`) y el nombre de la variable (`app`) que contiene el objeto de la aplicación WSGI.

## Opciones adicionales

Gunicorn proporciona varias opciones para personalizar su comportamiento. Aquí mostraremos algunas opciones.

### Workers

* `--workers <number>`

Esta opción establece el número de procesos worker para manejar las peticiones. Generalmente se usan de 2 a 4 workers por núcleo de CPU.\
Puedes calcular el número de workers usando la fórmula: `(2 x $num_cores) + 1`.

### Name

* `--name <name>`
* `-n <name>`

Esta opción establece el nombre del proceso para Gunicorn.

### Worker-class

* `--worker-class <class>`
* `-k <class>`

Esta opción establece el tipo de worker a usar. El valor predeterminado es `sync`, pero también puedes usar `gevent`, `eventlet`, `tornado` u otro tipo de worker.

### Paste

* `--paste <configfile>`

Esta opción te permite cargar un archivo de configuración de PasteDeploy.
Esto es útil para frameworks como Pyramid y Turbogear que usan archivos PasteDeploy.

## Extras

Gunicorn tiene muchas más opciones y funcionalidades que puedes explorar en la [documentación oficial](https://docs.gunicorn.org/en/stable/settings.html).

### Archivo de configuración

* También puedes crear un archivo de configuración para establecer las opciones de Gunicorn.
  Este archivo puede estar en formato Python y llamarse `gunicorn.config.py`.

```python gunicorn.config.py theme={null}
import multiprocessing

bind = "0.0.0.0:80"
workers = multiprocessing.cpu_count() * 2 + 1
```

## ¿Te gustó este artículo?

* Creamos este contenido con mucho cuidado para ofrecer la mejor ayuda posible.
  Si este artículo te ayudó de alguna manera, ¡apoya nuestro trabajo! ¡Deja tu reseña! nos ayuda a entender qué es lo que más te importa.

<CardGroup cols={2}>
  <Card title="Google Reviews" icon="google" href="https://g.page/r/CYZenpQcDgTzEAI/review">
    Deja tu reseña en Google Reviews.
  </Card>

  <Card title="Trustpilot" icon="star" href="https://www.trustpilot.com/review/squarecloud.app">
    Deja tu reseña en Trustpilot.
  </Card>
</CardGroup>
