Configurando o servidor
Vamos agora começar a definir o ambiente do servidor que usaremos para hospedar nosso servidor. Este tutorial usa o servidor Ubuntu. Comece atualizando os repositórios e instalando Python3 e Pip.
Atualização de sudo apt-get
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/aplicativo
CD/var/www/aplicativo
Alterar Propriedade e Permissões do Diretório:
sudo chown -r www-data: www-data/var/www/aplicativo/
Em seguida, instale os pacotes usando apt (balão e gunicorn)
sudo apt-get install python3-flask python3-gunicorn
Vamos agora prosseguir para inicializar um aplicativo de frasco. Comece criando o principal.py the the aplicação e wsgi.py, que fará com que o aplicativo seja executado.
Sudo Touch Main.py wsgi.py
Edite o principal.arquivo py e configure seu aplicativo de frasco e todas as rotas. Como este tutorial não é um guia de frasco, configuraremos uma rota básica e uma mensagem do Hello World.
do frasco de importação de frascos
App = Flask (__ nome__)
@aplicativo.rota("/")
def home ():
retornar "Nginx e gunicorn
"
Edite o WSGI.arquivo py e adicione o código para importar aplicativo e execute como:
Do aplicativo de importação principal
Se __name__ == "__main__":
aplicativo.Run (Debug = True)
Por fim, teste se está em funcionamento chamando o Flask como:
$ Flask Run
* Meio Ambiente: Produção
Aviso: este é um servidor de desenvolvimento. Não o use em uma implantação de produção.
Use um servidor WSGI de produção em vez disso.
* Modo de depuração: OFF
* Executando em http: // 127.0.0.1: 5000/ (pressione Ctrl+C para sair)
Tente acessar o aplicativo em http: // localhost: 5000.
Estabelecendo Gunicorn
Depois que nosso aplicativo estiver em execução com sucesso, 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: http: // 127.0.0.1: 8000 (14047)
[2021-03-19 09:19:34 +0000] [14047] [info] usando o trabalhador: sincronização
[2021-03-19 09:19:34 +0000] [14049] [Info] Botting Worker com PID: 14049
[2021-03-19 09:19:34 +0000] [14050] [Informações] O trabalhador de inicialização com PID: 14050
[2021-03-19 09:19:34 +0000] [14051] [Info] O trabalhador de inicialização com PID: 14051
[2021-03-19 09:19:34 +0000] [14052] [Info] O trabalhador de inicialização com PID: 14052
[2021-03-19 09:19:35 +0000] [14053] [Info] O trabalhador de inicialização com PID: 14053
Os comandos acima executam o aplicativo Flask usando o Gunicorn usando o número especificado de trabalhadores. Em seguida, chamamos o arquivo wsgi: app, que é o arquivo e a instância do aplicativo para executar.
Depois de ter o aplicativo em execução usando o Gunicorn, pressione Ctrl + C para interromper o servidor e configurar nginx.
Use os comandos abaixo para instalar e executar o nginx.
sudo apt -get install nginx -y
sudo systemctl iniciar nginx
sudo systemctl atability nginx
A próxima etapa é editar a configuração nginx no diretório habilitado para sites e adicionar o bloco do servidor. Considere a seguinte configuração. Altere o aplicativo para o nome do seu projeto.
sudo nano/etc/nginx/sites que estão disponíveis/aplicação.conf
servidor
Ouça 80;
aplicativo server_name;
access_log/var/log/nginx/aplicativo.acesso.registro;
error_log/var/log/nginx/aplicação.erro.registro;
Localização /
incluir proxy_params;
proxy_pass http: // unix:/var/www/aplicativo/aplicativo.meia;
Prossiga para criar um link para o diretório habilitado para o site para ativar o site.
sudo ln -s/etc/nginx/sites -disponível/aplicativo/aplicativo.conf/etc/nginx/sites habilitados/
Agora reinicie o serviço nginx como:
sudo systemctl reiniciar nginx
Em seguida, precisamos criar um arquivo de unidade Systemd para servir o aplicativo.
sudo nano/etc/systemd/sistema/aplicação.serviço
[Unidade]
Descrição = Aplicativo.Serviço - Um aplicativo de frasco é executado com Gunicorn.
Depois = rede.alvo
[Serviço]
Usuário = www-data
Grupo = www-data
WorkingDirectory =/var/www/aplicativo/
ExecStart =/usr/bin/gunicorn -Trabalhadores 3 -Bind Unix:/var/www/aplicativo.Sock WSGI: App
[Instalar]
WantedBy = MultiUser.alvo
Por fim, salve o arquivo da unidade, depois ative e recarregue o daemon.
SUDO SYSTEMCTL Reiniciar aplicação.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. Pode ser necessário 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: texto/html
Comprimento de conteúdo: 25
Último modificado: sex, 19 de março de 2021 09:22:47 GMT
Conclusão
Este tutorial passou como configurar um aplicativo Python Flask e servi -lo sobre o nginx usando o Gunicorn. Considere a documentação individual para saber mais sobre os serviços discutidos neste tutorial.