# Board CyberSecurity ![](https://i.imgur.com/7JjYq6z.png) Proxy Reverso é parte fundamental da internet. Em uma rede de computadores, um proxy reverso básico fica entre um grupo de servidores e os clientes que desejam usá-los. Cliente é qualquer hardware ou software que pode enviar solicitações para um servidor. Por exemplo, o navegador da Web é o cliente que usamos para acessar um site da empresa, hospedado em nossos servidores. O proxy reverso traz todos os pedidos dos clientes para os servidores e também entrega todas as respostas e os serviços dos servidores aos clientes. Do ponto de vista do cliente, isso faz parecer que tudo está vindo de um só lugar. Algumas de suas vantagens são: • Segurança – Se você tem uma camada antes de chegar ao seu servidor, você pode incluir um firewall ou algo do gênero para verificar se tal requisição é ou não segura o suficiente para chegar ao ser web server. • Balanceamento de Carga – Um proxy reverso é inteligente o suficiente para fazer o que chamamos de Balanceamento de Carga. • Cache – Você pode colocar um cache no seu proxy reverso, para que, caso a requisição que ele devolva não necessite de nenhum processamento no web server, o pró • Criptografia SSL – A criptografia SSL pode ser delegada ao próprio servidor proxy, ao invés dos servidores Web. Neste caso, o servidor proxy pode ser dotado de aceleradores criptográficos de alta performance; Compressão – Um servidor proxy pode otimizar e comprimir o conteúdo tornando o acesso mais rápido; ![](https://i.imgur.com/gJAv3Tz.png) Como primeiro passo será utilizado o flask que fornece ao desenvolvedor os recursos necessários para criar a aplicação web. Ele oferece aos desenvolvedores controle e flexibilidade para o desenvolvimento. Em seguida vamos atualizar o índice local de pacotes e instalar os pacotes que irão nos permitir construir nosso ambiente Python. **`sudo apt update`** Como segundo passo será criado o ambiente virtual em Python. O módulo venv fornece suporte para a criação de “ambientes virtuais” leves com seus próprios diretórios de site, opcionalmente isolados dos diretórios de site do sistema. ![](https://i.imgur.com/b1b3DzQ.png) Repare que agora temos (venv) no início do nosso terminal indicando que estamos no ambiente virtual. Logo após precisamos fazer a instalação do Flask com os seguintes comandos: ******pip install flask****** ![](https://i.imgur.com/UpPkzXL.png) Feito a instalacão do Flask, vamos verificar se está tudo certo e qual a versão. ******python -c "import flask; print(flask.version)"****** ![](https://i.imgur.com/7dKB6Ak.png) A versão atual, no momento que foi feito essa documentação é 2.1.2 Agora já temos o necessário para escrever o nosso primeiro código em Flask. # Passo 2 # Criando um aplicativo base Agora que você tem seu ambiente de programação configurado, você começará a usar o Flask. Neste passo, você criará um aplicativo Web pequeno dentro de um arquivo Python e o executará para iniciar o servidor, que mostrará informações no navegador. Em seu diretório flask_blog, abra um arquivo chamado **hello.py** para editá-lo. Use o nano ou seu editor de texto favorito: ![](https://i.imgur.com/pC57wW3.png) Este arquivo **hello.py** servirá como um exemplo mínimo de como processar solicitações HTTP. Dentro dele, você importará o objeto Flask e criará uma função que retorna uma resposta HTTP. Escreva o seguinte código dentro do **hello.py**: ![](https://i.imgur.com/AIcHXYj.png) No bloco de código anterior, importe o objeto Flask do pacote flask. Em seguida, use-o para criar sua instância de aplicativo Flask com o nome app. Passe a variável especial __name__​​​ que guarda o nome do módulo Python atual. Ela é usada para dizer à instância onde ela está localizada. Isso é necessário, pois o Flask configura alguns caminhos sem que você veja. Assim que criar a instância app, use-a para processar solicitações Web de entrada e enviar respostas ao usuário. O **@app.route**​​​ é um decorador que transforma uma função Python comum em uma função de visualização Flask. Ela converte o valor de retorno da função em uma resposta HTTP para ser mostrada por um cliente HTTP, como um navegador Web. Passe o valor '/' para **@app.route()** para indicar que esta função responderá às solicitações Web para a URL /, que é a URL principal. # Passo 3 # Função de Visualização Para executar seu aplicativo Web, diga primeiro ao Flask onde encontrar o aplicativo (o arquivo helly.py no seu caso) com a variável de ambiente FLASK_APP: ![](https://i.imgur.com/NqCw8qS.png) Em seguida, vamos executar em modo de desenvolvimento com a variável de ambiente FLASK_ENV: ![](https://i.imgur.com/mThPs18.png) Por último, executamos o aplicativo utilizando o comando flask run: ![](https://i.imgur.com/nVyf8PD.png) Assim que o aplicativo estiver em execução, o resultado será algo parecido com isto: ![](https://i.imgur.com/dyBEuTh.png) O resultado anterior tem várias informações, como: O nome do aplicativo que você está executando. O ambiente em que o aplicativo está sendo executado. Debug mode: on​​​ mostra que o depurador Flask está funcionando. Isso é bastante útil no processo de desenvolvimento, pois nos envia mensagens de erro detalhadas quando as coisas dão errado, facilitando assim, a resolução de problemas. O aplicativo está funcionando localmente na URL http://127.0.0.1:5000/, 127.0.0.1 é o IP que representa o localhost da nossa máquina e :5000 é o número da porta. Vamos abrir um navegador e digitar na URL http://127.0.0.1:5000/. Com isso vamos receber a string Hello, World! como uma resposta. Isso confirma que nosso aplicativo está funcionando corretamente. ![](https://i.imgur.com/9uo2Cu1.png) ![](https://i.imgur.com/IXQYpgf.png) ![](https://i.imgur.com/OwONOpL.png)