- Um servidor com acesso SSH
- Servidor da web Nginx 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 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 updatesudo 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 / applicationcd / 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-gunicornVamos 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.pyEdite 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 Flaskapp = 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 principalif __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 -ysudo 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.confservidor
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 nginxEm 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çosudo 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: // aplicativoHTTP / 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.