Como usar o nginx com o frasco.

Como usar o nginx com o frasco.
O Python é uma ótima, fácil de aprender e todo-poderosa linguagem de programação e, com estruturas como Django e Flask, podemos usá-lo para criar aplicativos da Web completos. Depois de criarmos 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 o nginx usando Gunicorn. Antes de começarmos com o Flask e o Gunicorn, verifique se você atende aos seguintes requisitos:
  • Um servidor com acesso SSH
  • Nginx Web Server em execução no servidor (instalação coberta)
  • Pitão
  • Você é um usuário sudo.

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.