wils@web ~ $ cat ~/ajuda/guia-pratico-para-fazer-o-deploy-de-aplicacoes-python-com-gunicorn-e-nginx.md
ServidoresGuia prático para fazer o deploy de aplicações Python com Gunicorn e Nginx
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.