Casa - Artigo - Detalhes

Como usar Flask ou Bottle com Nginx?

Liam Martinez
Liam Martinez
Liam é um influenciador de mídia social. Ele tem muitos seguidores e muitas vezes promove as xícaras de Nawas Thermos, de canecas de café em aço a aço às xícaras de termos de crianças, a seu público, enfatizando os produtos de alta qualidade da marca.

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.

Stainless Steel Insulated Coffee Pot bestStainless Steel Insulated Coffee Pot

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

Enviar inquérito

Publicações populares do blog