wils@web ~ $ cat ~/ajuda/guia-pratico-para-fazer-o-deploy-de-aplicacoes-python-com-gunicorn-e-nginx.md

Servidores

Guia prático para fazer o deploy de aplicações Python com Gunicorn e Nginx

atualizado em 06/09/2026

Este guia prático irá orientá-lo no processo de fazer o deploy de aplicações Python utilizando Gunicorn como servidor WSGI e Nginx como servidor web reverso.

Introdução

Gunicorn é um servidor WSGI Python que permite executar aplicações web, enquanto o Nginx atua como um proxy reverso, gerenciando conexões e melhorando a performance.

Pré-requisitos

  • Servidor Linux (Ubuntu, CentOS, etc.)
  • Python 3.x instalado
  • pip para gerenciar pacotes Python
  • Acesso root ou sudo

Passo a Passo

1. Instalar Gunicorn

pip install gunicorn

2. Criar uma aplicação Python simples

Crie um arquivo chamado app.py com o seguinte conteúdo:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello, World!'

if __name__ == '__main__':
    app.run()

3. Testar a aplicação com Gunicorn

gunicorn --bind 0.0.0.0:8000 app:app

Acesse http://seu_ip:8000 para verificar se a aplicação está funcionando.

4. Instalar Nginx

sudo apt update
sudo apt install nginx

5. Configurar Nginx

Crie um arquivo de configuração em /etc/nginx/sites-available/app:

server {
    listen 80;
    server_name seu_ip;

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Ative a configuração:

sudo ln -s /etc/nginx/sites-available/app /etc/nginx/sites-enabled/
sudo systemctl restart nginx

6. Executar Gunicorn como um serviço

Crie um arquivo de serviço em /etc/systemd/system/gunicorn.service:

[Unit]
Description=gunicorn daemon
After=network.target

[Service]
User=seu_usuario
Group=www-data
WorkingDirectory=/caminho/para/seu/projeto
ExecStart=/usr/local/bin/gunicorn --access-logfile - --workers 3 --bind unix:/caminho/para/seu/projeto/app.sock app:app

[Install]
WantedBy=multi-user.target

Inicie e habilite o serviço:

sudo systemctl start gunicorn
sudo systemctl enable gunicorn

Conclusão

Agora você tem uma aplicação Python rodando com Gunicorn e Nginx. Para aumentar a segurança, considere usar HTTPS com o Let's Encrypt.

Precisa de ajuda com isso no seu servidor? A gente resolve pra você.

falar no WhatsApp

// deu erro ou não funcionou?

Achou algo errado neste manual?

Conta pra gente o que deu errado ou qual erro apareceu — a gente corrige. Se quiser retorno, deixe seu contato.