15%

Poupe 15% em todos os serviços

Teste as suas habilidades e obtenha Desconto em qualquer plano

Utilizar o código:

Skills
Começar a trabalhar
01.11.2024
3 +1

Como Instalar Flask em Hosting: Um Guia Completo Passo a Passo

Flask é um framework web leve e flexível para Python que capacita desenvolvedores a criar e implantar aplicações web de forma rápida e eficiente. Quer você esteja lançando um projeto pessoal, uma REST API ou um serviço web em larga escala, saber como instalar e configurar corretamente o Flask em um ambiente de hospedagem é uma habilidade essencial. Este guia abrangente o orienta em cada etapa — desde a configuração do servidor até a implantação em produção com Gunicorn e Nginx.

1. Pré-requisitos

Antes de mergulhar no processo de instalação, certifique-se de que você tem o seguinte em vigor:

Ambiente de Hospedagem que Suporta Python

Você precisa de um serviço de hospedagem que lhe dê controle total sobre o ambiente do seu servidor. Planos de hospedagem compartilhada frequentemente restringem a execução de Python, portanto, para implantações de Flask, um plano de VPS Hosting ou um Servidor Dedicado é fortemente recomendado. Essas opções lhe dão acesso root, capacidades completas de gerenciamento de pacotes e a flexibilidade de configurar sua stack exatamente como necessário.

Acesso SSH

Você precisará de acesso SSH para se conectar ao seu servidor remoto e executar comandos. A maioria dos ambientes VPS e servidores dedicados baseados em Linux suportam isso nativamente.

Python Instalado

Python 3.8 ou superior é recomendado. A maioria dos ambientes de hospedagem modernos vem com Python pré-instalado, mas verificaremos isso durante a configuração.

Opcional: Um Nome de Domínio

Se você planeja tornar sua aplicação Flask acessível publicamente via um domínio em vez de um endereço IP bruto, considere registrar um através de Registro de Domínio antes de começar.

2. Conectando ao Seu Servidor via SSH

Abra seu terminal (Linux/macOS) ou um cliente SSH como PuTTY (Windows) e conecte-se ao seu servidor:

ssh username@your_server_ip

Substitua username pelo seu nome de usuário do servidor e your_server_ip pelo endereço IP público do seu servidor.

Uma vez conectado, verifique se Python 3 está disponível:

python3 --version

Você deve ver uma saída similar a Python 3.10.x. Se Python não estiver instalado, prossiga para instalá-lo:

sudo apt install python3

3. Atualizando Seu Servidor

Antes de instalar qualquer pacote, é uma boa prática atualizar a lista de pacotes do seu sistema e atualizar os pacotes existentes para suas versões mais recentes:

sudo apt update
sudo apt upgrade -y

Isso garante que você esteja trabalhando com as versões mais estáveis e seguras de todas as dependências.

4. Instalando Flask

Passo 1: Instalar pip

pip é o gerenciador de pacotes do Python e é necessário para instalar Flask e outras bibliotecas Python. Instale-o se ainda não estiver presente:

sudo apt install python3-pip -y

Verifique a instalação:

pip3 --version

Passo 2: Criar um Diretório de Projeto

Organize sua aplicação criando um diretório dedicado:

mkdir my_flaskapp
cd my_flaskapp

Passo 3: Configurar um Ambiente Virtual

Usar um ambiente virtual isola as dependências do seu projeto da instalação global do Python, prevenindo conflitos de versão e mantendo seu servidor limpo:

sudo apt install python3-venv -y
python3 -m venv venv

Ative o ambiente virtual:

source venv/bin/activate

Seu prompt do terminal mudará para indicar que o ambiente virtual está ativo, tipicamente mostrando (venv) no início da linha.

Passo 4: Instalar Flask

Com o ambiente virtual ativado, instale Flask usando pip:

pip install Flask

Confirme a instalação:

flask --version

Você deve ver a versão do Flask junto com as versões do Python e Werkzeug.

5. Criando uma Aplicação Flask Simples

Passo 1: Criar o Arquivo da Aplicação

Crie um novo arquivo chamado app.py dentro do seu diretório de projeto:

nano app.py

Passo 2: Escrever Sua Aplicação Flask

Adicione o seguinte código mínimo de aplicação Flask:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
    return "Hello, World! Flask is running successfully."

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

Análise do código:

  • Flask(__name__) — Cria uma nova instância de aplicação Flask.
  • @app.route('/') — Define uma rota de URL para a página inicial.
  • app.run(host='0.0.0.0', port=5000) — Inicia o servidor de desenvolvimento, tornando-o acessível em todas as interfaces de rede na porta 5000.

Passo 3: Salvar e Sair

Pressione CTRL + X, depois Y e pressione Enter para salvar o arquivo e sair do editor nano.

6. Executando Sua Aplicação Flask em Modo de Desenvolvimento

Inicie o servidor de desenvolvimento do Flask para testar sua aplicação:

python app.py

Sua aplicação agora será acessível em um navegador web em:

http://your_server_ip:5000

> Importante: O servidor de desenvolvimento Flask integrado não é adequado para uso em produção. É single-threaded, não otimizado para desempenho e carece de recursos críticos de segurança. Sempre use um servidor WSGI de nível de produção para implantações ao vivo.

7. Implantando Flask em um Ambiente de Produção com Gunicorn

Para implantações em produção, Gunicorn (Green Unicorn) é o servidor HTTP WSGI Python mais amplamente utilizado. Ele lida com múltiplas solicitações simultâneas de forma eficiente e se integra perfeitamente com Nginx.

Passo 1: Instalar Gunicorn

Com seu ambiente virtual ainda ativo, instale Gunicorn:

pip install gunicorn

Passo 2: Executar Sua Aplicação com Gunicorn

Inicie sua aplicação Flask usando Gunicorn, vinculando-a ao localhost na porta 8000:

gunicorn app:app -b 127.0.0.1:8000 --workers 3

Explicação dos parâmetros:

  • app:app — Refere-se ao objeto app dentro do arquivo app.py.
  • -b 127.0.0.1:8000 — Vincula Gunicorn ao localhost na porta 8000 (Nginx lidará com o tráfego externo).
  • --workers 3 — Gera 3 processos de trabalho para lidar com solicitações simultâneas. Uma fórmula comum é (2 × CPU cores) + 1.

Passo 3: Executar Gunicorn como um Serviço Systemd (Recomendado)

Para garantir que Gunicorn inicie automaticamente na reinicialização do servidor, crie um arquivo de serviço systemd:

sudo nano /etc/systemd/system/my_flaskapp.service

Adicione a seguinte configuração:

[Unit]
Description=Gunicorn instance to serve my_flaskapp
After=network.target

[Service]
User=your_username
Group=www-data
WorkingDirectory=/home/your_username/my_flaskapp
Environment="PATH=/home/your_username/my_flaskapp/venv/bin"
ExecStart=/home/your_username/my_flaskapp/venv/bin/gunicorn app:app -b 127.0.0.1:8000 --workers 3

[Install]
WantedBy=multi-user.target

Substitua your_username pelo seu nome de usuário do servidor. Depois ative e inicie o serviço:

sudo systemctl daemon-reload
sudo systemctl start my_flaskapp
sudo systemctl enable my_flaskapp

Verifique o status do serviço:

sudo systemctl status my_flaskapp

8. Configurando Nginx como um Proxy Reverso

Nginx atua como um proxy reverso, ficando na frente do Gunicorn e lidando com todo o tráfego HTTP/HTTPS recebido. Esta configuração melhora o desempenho, permite terminação SSL e permite que você sirva arquivos estáticos de forma eficiente.

Passo 1: Instalar Nginx

sudo apt install nginx -y

Passo 2: Criar um Arquivo de Configuração Nginx

Crie um novo bloco de servidor de configuração para sua aplicação Flask:

sudo nano /etc/nginx/sites-available/my_flaskapp

Adicione a seguinte configuração:

server {
    listen 80;
    server_name your_domain_or_ip;  # Replace with your domain or server 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;
    }

    location /static {
        alias /home/your_username/my_flaskapp/static;
        expires 30d;
    }
}

Passo 3: Ativar a Configuração

Crie um link simbólico para ativar o site e teste a configuração do Nginx:

sudo ln -s /etc/nginx/sites-available/my_flaskapp /etc/nginx/sites-enabled
sudo nginx -t

Se o teste retornar syntax is ok e test is successful, reinicie o Nginx:

sudo systemctl restart nginx

Sua aplicação Flask agora é acessível em http://your_domain_or_ip na porta 80.

9. Protegendo Sua Aplicação Flask com SSL/HTTPS

Executar sua aplicação sobre HTTPS não é mais opcional — é um requisito fundamental para segurança, confiança do usuário e classificações de SEO. Você pode obter e instalar um certificado SSL gratuito usando Certbot com Let’s Encrypt, ou comprar um certificado premium através de Certificados SSL para validação aprimorada e cobertura de garantia.

Instalar Certbot e Obter um Certificado SSL Gratuito

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d your_domain.com -d www.your_domain.com

Certbot modificará automaticamente sua configuração do Nginx para ativar HTTPS e configurar a renovação automática de certificados.

Verifique se a renovação automática está configurada:

sudo certbot renew --dry-run

10. Configuração do Firewall

Certifique-se de que o firewall do seu servidor permite tráfego nas portas necessárias:

sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable
sudo ufw status

Nginx Full abre tanto a porta 80 (HTTP) quanto a porta 443 (HTTPS).

11. Resolvendo Problemas Comuns

ProblemaCausa ProvávelSolução
502 Bad GatewayGunicorn não está em execuçãoVerifique sudo systemctl status my_flaskapp
Permission denied no socketPermissões de arquivo incorretasCertifique-se de que o usuário Nginx tem acesso ao diretório da aplicação
Aplicação Flask não encontradaDiretório de trabalho incorreto no arquivo de serviçoVerifique novamente o caminho WorkingDirectory na configuração systemd
Porta 5000 não acessívelFirewall bloqueando a portaAbra a porta com sudo ufw allow 5000 (apenas desenvolvimento)
ModuleNotFoundErrorAmbiente virtual não ativadoCertifique-se de que ExecStart aponta para o binário Python/Gunicorn do venv

12. Resumo e Próximos Passos

Implantar uma aplicação Flask em um servidor de hospedagem envolve várias etapas interconectadas: configurar um ambiente de servidor limpo, instalar Python e Flask dentro de um ambiente virtual, configurar Gunicorn como um servidor WSGI de produção e colocar Nginx na frente como um proxy reverso. Adicionar criptografia SSL finaliza uma implantação segura e pronta para produção.

Aqui está um resumo rápido da stack completa de implantação:

  • Flask — Framework web Python
  • Gunicorn — Servidor WSGI de produção
  • Nginx
15%

Poupe 15% em todos os serviços

Teste as suas habilidades e obtenha Desconto em qualquer plano

Utilizar o código:

Skills
Começar a trabalhar