> ## 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.

# Como Usar o Gunicorn

> Aprenda como usar o Gunicorn, um servidor HTTP para Python.

## Introdução

* Este artigo guia você pelo processo de uso do Gunicorn, um servidor HTTP WSGI para Python.
* Antes de começarmos, certifique-se de que você tem o Python e o Gunicorn instalados em seu ambiente. Você pode instalar o Gunicorn usando o seguinte comando:

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

## Uso básico

Para rodar uma aplicação web Python usando o Gunicorn, você precisa ter uma aplicação WSGI como Flask, Django ou algum outro framework.\
Depois que sua aplicação estiver pronta, você precisa saber o nome do módulo e o nome da variável que contém o objeto da aplicação WSGI.\
Por exemplo, se você tiver uma aplicação Flask em um arquivo chamado `app.py` e a instância do Flask se chamar `app`, você pode executá-la com o Gunicorn usando o seguinte comando:

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

Neste comando:

* `python -m gunicorn` executa o Gunicorn como um módulo Python.
* `--bind 0.0.0.0:80` faz o Gunicorn escutar em todas as interfaces de rede na porta 80.
* `app:app` especifica o nome do módulo (`app`) e o nome da variável (`app`) que contém o objeto da aplicação WSGI.

## Opções adicionais

O Gunicorn fornece diversas opções para personalizar seu comportamento. Aqui mostraremos algumas delas.

### Workers

* `--workers <número>`

Essa opção define o número de processos *workers* responsáveis por lidar com as requisições. Geralmente utiliza-se de 2 a 4 workers por núcleo da CPU.\
Você pode calcular o número de workers utilizando a fórmula: `(2 x $num_cores) + 1`.

### Name

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

Essa opção define o nome do processo para o Gunicorn.

### Worker-class

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

Essa opção define o tipo de worker a ser usado. O padrão é `sync`, mas você também pode usar `gevent`, `eventlet`, `tornado` ou outros tipos de workers.

### Paste

* `--paste <arquivo_de_config>`

Essa opção permite carregar um arquivo de configuração PasteDeploy.\
Isso é útil para frameworks como Pyramid e TurboGears, que utilizam arquivos PasteDeploy.

## Extras

O Gunicorn possui muitas outras opções e recursos que você pode explorar na [documentação oficial](https://docs.gunicorn.org/en/stable/settings.html).

### Arquivo de configuração

* Você também pode criar um arquivo de configuração para definir opções do Gunicorn.
  Esse arquivo pode estar no formato Python e ter o nome `gunicorn.config.py`.\\

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

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

## Gostou desse artigo?

* Criamos este conteúdo com o máximo de cuidado para oferecer a melhor ajuda possível.
  Se o artigo contribuiu de alguma forma, valorize nosso trabalho! Deixe sua avaliação e ajude-nos a entender o que é mais importante para você.

<CardGroup cols={2}>
  <Card title="Google Reviews" icon="google" href="https://g.page/r/CYZenpQcDgTzEAI/review">
    Deixe sua avaliação no Google Reviews.
  </Card>

  <Card title="Trustpilot" icon="star" href="https://www.trustpilot.com/review/squarecloud.app">
    Deixe sua avaliação no Trustpilot.
  </Card>
</CardGroup>
