Como usar Flask ou Bottle com Nginx?
Deixe um recado
Ei! Se você gosta de desenvolvimento web, provavelmente já ouviu falar de Flask e Bottle. Essas estruturas web Python leves são muito úteis para construir aplicativos web. E quando se trata de implantá-los, o Nginx é o servidor web de primeira escolha. Como fornecedor de Flask and Bottle, estou aqui para orientá-lo sobre como usar o Flask ou Bottle com Nginx.
Por que combinar Flask/Bottle com Nginx?
Primeiro, vamos falar sobre por que você deseja usar Flask ou Bottle com Nginx. Flask e Bottle são ótimos para criar aplicativos da Web rapidamente, mas não foram projetados para lidar sozinhos com um grande número de solicitações simultâneas. Eles são mais como mecanismos simples que potencializam a funcionalidade do seu aplicativo da web.
O Nginx, por outro lado, é um servidor web de alto desempenho. Ele pode lidar com inúmeras conexões simultâneas com eficiência. Ao usar o Nginx na frente do seu aplicativo Flask ou Bottle, você pode descarregar tarefas como servir arquivos estáticos, lidar com solicitações HTTP e balanceamento de carga. Dessa forma, seu aplicativo Flask ou Bottle pode se concentrar no que faz de melhor: processar a lógica de negócios.
Configurando frasco ou garrafa
Antes de mergulharmos na integração com o Nginx, vamos ter certeza de que nosso aplicativo Flask ou Bottle está instalado e funcionando.


Configuração do frasco
Se você estiver usando o Flask, primeiro certifique-se de ter o Python e o Flask instalados. Você pode criar um aplicativo Flask simples como este:
from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Olá, mundo!' se __name__ == '__main__': app.run(host='0.0.0.0', porta=5000)
Salve este código em um arquivo, digamosaplicativo.py. Em seguida, execute-o usandoaplicativo python.py. Seu aplicativo Flask começará a ser executado emhttp://0.0.0.0:5000.
Configuração da garrafa
Para Bottle, o processo é semelhante. Instale o Bottle se ainda não o fez. Aqui está um aplicativo simples do Bottle:
da rota de importação da garrafa, execute @route('/') def index(): return 'Hello from Bottle!' executar(host='0.0.0.0', porta=8080)
Salve isso comogarrafa_app.pye executá-lo compython garrafa_app.py. Seu aplicativo Bottle estará acessível emhttp://0.0.0.0:8080.
Instalando e configurando o Nginx
Agora, vamos colocar o Nginx em funcionamento. O processo de instalação varia dependendo do seu sistema operacional. No Ubuntu, você pode usar o seguinte comando:
sudo apt-get atualizar sudo apt-get instalar nginx
Após a instalação, inicie o Nginx usandosudo systemctl iniciar nginx. Você pode verificar seu status comsudo systemctl status nginx.
Configurando Nginx para Flask ou Bottle
O Nginx usa arquivos de configuração para definir como deve lidar com as solicitações. Você precisará criar um novo arquivo de configuração para seu aplicativo Flask ou Bottle.
Crie um novo arquivo no/etc/nginx/sites - disponível/diretório. Por exemplo, se estiver usando Flask, você pode criar um arquivo chamadoflask_app.conf:
servidor {ouvir 80; nome_servidor seu_domínio_ou_ip; localização / { proxy_pass http://127.0.0.1:5000; proxy_set_header Host $host; proxy_set_header X - Real - IP $remote_addr; proxy_set_header X - Encaminhado - Para $proxy_add_x_forwarded_for; } }
Se você estiver usando Bottle, altere oproxy_passparahttp://127.0.0.1:8080e salve o arquivo comogarrafa_app.conf.
Crie um link simbólico para osites - ativadodiretório:
sudo ln -s /etc/nginx/sites - disponível/flask_app.conf /etc/nginx/sites - habilitado/
Ou para garrafa:
sudo ln -s /etc/nginx/sites - disponível/bottle_app.conf /etc/nginx/sites - habilitado/
Teste a configuração do Nginx comsudo nginx -t. Se não houver erros, recarregue o Nginx usandosudo systemctl recarregar nginx.
Servindo arquivos estáticos
Uma das grandes vantagens do Nginx é sua capacidade de servir arquivos estáticos com eficiência. Em seu aplicativo Flask ou Bottle, você pode ter ativos estáticos como CSS, JavaScript ou imagens.
No seu arquivo de configuração Nginx, adicione um novolocalizaçãobloco para arquivos estáticos. Por exemplo:
localização /static { alias /caminho/para/seus/estáticos/arquivos; }
Isso diz ao Nginx para servir arquivos do diretório especificado quando uma solicitação começa com/estático.
Balanceamento de carga
Se você tiver várias instâncias do seu aplicativo Flask ou Bottle em execução, poderá usar o Nginx para balanceamento de carga. Veja como você pode configurá-lo:
flask_apps upstream {servidor 127.0.0.1:5000; servidor 127.0.0.1:5001; } servidor {escuta 80; nome_servidor seu_domínio_ou_ip; localização / { proxy_pass http://flask_apps; proxy_set_header Host $host; proxy_set_header X - Real - IP $remote_addr; proxy_set_header X - Encaminhado - Para $proxy_add_x_forwarded_for; } }
Esta configuração distribui solicitações recebidas entre duas instâncias do seu aplicativo Flask em execução nas portas 5000 e 5001.
Usando um proxy reverso
O Nginx atua como um proxy reverso nesta configuração. Um proxy reverso fica na frente do seu aplicativo Flask ou Bottle e encaminha solicitações para ele. Também ajuda a ocultar a estrutura interna do seu aplicativo do mundo exterior.
Oproxy_passdiretiva na configuração do Nginx é o que faz isso acontecer. Ele pega as solicitações HTTP recebidas e as envia para o aplicativo Flask ou Bottle apropriado em execução na máquina local.
Monitoramento e solução de problemas
Depois de configurar tudo, é importante monitorar seu aplicativo Flask/Bottle e o Nginx. Você pode usar ferramentas comocaudapara visualizar os logs de acesso e erros do Nginx:
sudo tail -f /var/log/nginx/access.log sudo tail -f /var/log/nginx/error.log
Se você tiver problemas, esses registros poderão fornecer informações valiosas sobre o que está errado. Por exemplo, se você ver502 Bad Gatewayerros, isso pode significar que seu aplicativo Flask ou Bottle não está funcionando corretamente.
Nossas ofertas de produtos
Como fornecedor de frascos e garrafas, não nos limitamos a fornecer orientação. Também oferecemos produtos de alta qualidade relacionados ao ecossistema Flask and Bottle. Por exemplo, se você está procurando uma ótima maneira de manter seu café quente enquanto você está ocupado programando, confira nossoCafeteira isolada em aço inoxidável. É perfeito para longas sessões de codificação.
Contate-nos para compras
Se você estiver interessado em nossas soluções Flask and Bottle, ou se tiver alguma dúvida sobre como usá-las com o Nginx, adoraríamos ouvir sua opinião. Quer você seja uma pequena startup ou uma grande empresa, podemos fornecer o suporte e os produtos que você precisa. Entre em contato conosco para iniciar uma discussão sobre compras. Estamos aqui para ajudá-lo a aproveitar ao máximo seus projetos de desenvolvimento web.
Referências
- Documentação do frasco
- Documentação da garrafa
- Documentação Nginx





