Nginx

Como usar o Nginx com o Flask.

Como usar o Nginx com o Flask.
Python é uma linguagem de programação excelente, fácil de aprender e totalmente poderosa e, com estruturas como Django e Flask, podemos usá-la para criar aplicativos da web completos. Depois de criar um aplicativo da web usando bibliotecas e estruturas como o Flask, precisamos hospedá-lo em um servidor e expô-lo ao público. Este tutorial discute como hospedar seu aplicativo da web em um servidor executando Nginx usando Gunicorn. Antes de começarmos com o Flask e o Gunicorn, verifique se você atende aos seguintes requisitos:

Configurando o Servidor

Vamos agora começar a definir o ambiente de servidor que devemos usar para hospedar nosso servidor. Este tutorial usa o Ubuntu Server. Comece atualizando os repositórios e instalando Python3 e Pip.

sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install python3 python3-pip -y

Em seguida, precisamos criar um diretório para armazenar o projeto.

sudo mkdir / var / www / application
cd / var / www / aplicativo

Altere a propriedade e as permissões do diretório:

sudo chown -R www-data: www-data / var / www / application /

Em seguida, instale os pacotes usando apt (flask e Gunicorn)

sudo apt-get install python3-flask python3-gunicorn

Vamos agora inicializar um aplicativo de frasco. Comece criando o principal.py-mantém o aplicativo e wsgi.py, que colocará o aplicativo em execução.

sudo touch principal.py wsgi.py

Edite o principal.arquivo py e configurar seu aplicativo Flask e todas as rotas. Uma vez que este tutorial não é um guia do Flask, iremos configurar uma rota básica e uma mensagem hello world.

from flask importar Flask
app = Flask (__ name__)
@aplicativo.rota("/")
def home ():
Retorna "

Nginx e Gunicorn

"

Edite o wsgi.arquivo py e adicione o código para importar o aplicativo e execute como:

do aplicativo de importação principal
if __name__ == "__main__":
aplicativo.executar (debug = True)

Por fim, teste se ele está funcionando chamando flask como:

$ flask run
* Ambiente: produção
AVISO: Este é um servidor de desenvolvimento. Não use em uma implantação de produção.
Em vez disso, use um servidor WSGI de produção.
* Modo de depuração: desligado
* Executando em http: // 127.0.0.1: 5000 / (Pressione CTRL + C para sair)

Tente acessar o aplicativo em http: // localhost: 5000.

Configurando Gunicorn

Assim que nosso aplicativo for executado com êxito, podemos usar o Gunicorn para testar o aplicativo usando os comandos:

$ sudo gunicorn --trabalhadores 5 wsgi: app
[2021-03-19 09:19:34 +0000] [14047] [INFO] Iniciando gunicorn 20.0.4
[2021-03-19 09:19:34 +0000] [14047] [INFO] Ouvindo em: http: // 127.0.0.1: 8.000 (14047)
[2021-03-19 09:19:34 +0000] [14047] [INFO] Usando trabalhador: sincronizar
[2021-03-19 09:19:34 +0000] [14049] [INFO] Inicializando trabalhador com pid: 14049
[2021-03-19 09:19:34 +0000] [14050] [INFO] Inicializando trabalhador com pid: 14050
[2021-03-19 09:19:34 +0000] [14051] [INFO] Booting worker com pid: 14051
[2021-03-19 09:19:34 +0000] [14052] [INFO] Inicializando trabalhador com pid: 14052
[2021-03-19 09:19:35 +0000] [14053] [INFO] Inicializando trabalhador com pid: 14053

Os comandos acima executam o aplicativo de frasco usando Gunicorn usando o número especificado de trabalhadores. Em seguida, chamamos o arquivo wsgi: app, que é o arquivo e a instância do aplicativo a ser executado.

Depois de ter o aplicativo em execução usando Gunicorn, pressione CTRL + C para parar o servidor e configurar o Nginx.

Use os comandos abaixo para instalar e executar o Nginx.

sudo apt-get install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx

A próxima etapa é editar a configuração do Nginx no diretório habilitado para sites e adicionar o bloco do servidor. Considere a seguinte configuração. Mude o aplicativo para o nome do seu projeto.

sudo nano / etc / nginx / sites-available / application.conf
servidor
escute 80;
aplicativo server_name;
access_log / var / log / nginx / aplicativo.Acesso.registro;
error_log / var / log / nginx / appliation.erro.registro;
localização /
incluir proxy_params;
proxy_pass http: // unix: / var / www / application / application.meia;

Prossiga para criar um link para o diretório habilitado para site para habilitar o site.

sudo ln -s / etc / nginx / sites-available / application.conf / etc / nginx / sites-enabled /

Agora reinicie o serviço Nginx como:

sudo systemctl restart nginx

Em seguida, precisamos criar um arquivo de unidade systemd para servir ao aplicativo.

sudo nano / etc / systemd / system / application.serviço
[Unidade]
Descrição = aplicativo.serviço - Um aplicativo Flask executado com Gunicorn.
Depois de = rede.alvo
[Serviço]
Usuário = www-data
Grupo = www-data
WorkingDirectory = / var / www / application /
ExecStart = / usr / bin / gunicorn --workers 3 --bind unix: / var / www / application.sock wsgi: app
[Instalar]
WantedBy = multiusuário.alvo

Por fim, salve o arquivo da unidade, ative e recarregue o daemon.

sudo systemctl restart aplicativo.serviço
sudo systemctl daemon-reload

Agora você pode acessar o aplicativo usando o endereço IP ou o endereço especificado no arquivo de configuração nginx. Você pode precisar adicioná-lo ao arquivo do host.

curl http: // aplicativo
HTTP / 1.1 200 OK
Servidor: Werkzeug / 0.16.1 Python / 3.8.5)
Data: Sex, 19 de março de 2021 10:00:39 GMT
Tipo de conteúdo: text / html
Comprimento do conteúdo: 25
Última modificação: Sex, 19 de março de 2021 09:22:47 GMT

Conclusão

Este tutorial descreveu como configurar um aplicativo Python Flask e exibi-lo no Nginx usando Gunicorn. Considere a documentação individual para aprender mais sobre os serviços discutidos neste tutorial.

Como usar o Xdotool para estimular cliques do mouse e pressionamentos de tecla no Linux
Xdotool é uma ferramenta de linha de comando gratuita e de código aberto para simular cliques do mouse e pressionamentos de tecla. Este artigo irá cob...
Os 5 principais produtos ergonômicos de mouse de computador para Linux
O uso prolongado do computador causa dor no pulso ou nos dedos? Você está sofrendo de rigidez nas articulações e constantemente precisa apertar as mão...
Como alterar as configurações do mouse e touchpad usando Xinput no Linux
A maioria das distribuições Linux vem com a biblioteca “libinput” por padrão para lidar com eventos de entrada em um sistema. Ele pode processar event...