wils@web ~ $ cat ~/ajuda/como-criar-um-ambiente-de-producao-para-aplicacoes-django-usando-gunicorn-e-nginx-no-ubuntu-22-04.md

Desenvolvimento

Como criar um ambiente de produção para aplicações Django usando Gunicorn e Nginx no Ubuntu 22.04

atualizado em 19/08/2026

Este manual descreve como criar um ambiente de produção para aplicações Django usando Gunicorn e Nginx no Ubuntu 22.04.

Pré-requisitos

  • Ubuntu 22.04 instalado
  • Python 3.8 ou superior
  • Pip e virtualenv instalados
  • Acesso root ou sudo

Passo 1: Instalar dependências

sudo apt update
sudo apt install python3-pip python3-dev libpq-dev nginx

Passo 2: Criar e configurar o ambiente virtual

mkdir ~/meu_projeto && cd ~/meu_projeto
python3 -m venv venv
source venv/bin/activate
pip install django gunicorn psycopg2-binary

Passo 3: Criar um projeto Django

django-admin startproject meu_projeto .
python manage.py migrate
python manage.py collectstatic

Passo 4: Configurar Gunicorn

gunicorn --bind 0.0.0.0:8000 meu_projeto.wsgi:application

Passo 5: Criar um serviço systemd para Gunicorn

sudo nano /etc/systemd/system/gunicorn.service
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=seu_usuario
Group=www-data
WorkingDirectory=/home/seu_usuario/meu_projeto
ExecStart=/home/seu_usuario/meu_projeto/venv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/home/seu_usuario/meu_projeto/meu_projeto.sock meu_projeto.wsgi:application
[Install]
WantedBy=multi-user.target

Passo 6: Iniciar e habilitar o Gunicorn

sudo systemctl start gunicorn
sudo systemctl enable gunicorn

Passo 7: Configurar o Nginx

sudo nano /etc/nginx/sites-available/meu_projeto
server {
    listen 80;
    server_name seu_dominio.com;
    location = /favicon.ico { access_log off; log_not_found off; }
    location /static/ {
        root /home/seu_usuario/meu_projeto;
    }
    location / {
        include proxy_params;
        proxy_pass unix:/home/seu_usuario/meu_projeto/meu_projeto.sock;
    }
}
sudo ln -s /etc/nginx/sites-available/meu_projeto /etc/nginx/sites-enabled
sudo nginx -t
sudo systemctl restart nginx

Conclusão

Seu ambiente de produção Django está configurado. Para maior segurança, considere usar HTTPS com 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.