Compartilhamento de tecnologia

Implantando serviços web Python em ambiente Linux

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Insira a descrição da imagem aqui

"Garota, depende da sorte quando nos encontrarmos novamente. Não finja que não se conhece. Não trema quando disser "Faz tempo que não nos vemos"..."

Para implantar uma API de back-end escrita em Python em um ambiente Linux, você pode seguir as etapas detalhadas abaixo. Este artigo cobrirá a preparação do ambiente, escrita de API, uso do Gunicorn como servidor WSGI, configuração do Nginx como proxy reverso e uso do Systemd para gerenciar serviços.

1. Prepare o ambiente

Instale Python

Se o Python não estiver instalado em seu sistema Linux, você poderá usar o seguinte comando para instalá-lo:

sudo yum update
sudo yum install python3 python3-pip
  • 1
  • 2

Instale as bibliotecas necessárias

Supondo que você esteja usando o framework Flask ou Django, primeiro instale as bibliotecas necessárias:

pip3 install flask  # 如果你使用的是 Flask
pip3 install django  # 如果你使用的是 Django
  • 1
  • 2

2. Escreva o código API

Exemplo de frasco

Crie um exemplo simples de API Flask:

from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/api', methods=['GET'])
def api():
    return jsonify({'message': 'Hello, World!'})

if __name__ == '__main__':
    app.run(host='0.0.0.0')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

Exemplo de Django

Crie um novo projeto Django e adicione a API:

django-admin startproject myproject
cd myproject
django-admin startapp myapp
  • 1
  • 2
  • 3

existir myapp/views.py Adicione a visualização da API em:

from django.http import JsonResponse
def api(request):
    return JsonResponse({'message': 'Hello, World!'})
  • 1
  • 2
  • 3

existir myproject/urls.py Configure o roteamento de URL em:

from django.contrib import admin
from django.urls import path
from myapp.views import api

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/', api),
]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

3. Método 1 – Inicialização direta

Para iniciar rapidamente um aplicativo em um ambiente de desenvolvimento ou teste, você pode executá-lo diretamente:

python main.py 或者 nohup python main.py
  • 1
Exemplo de Django:

Django tem seu próprio servidor de desenvolvimento, com o qual você pode começar:

python manage.py runserver 0.0.0.0:8000
  • 1

Recomenda-se a utilização do Gunicorn no ambiente de produção. Para garantir o desempenho e a estabilidade da aplicação no ambiente de produção, é recomendável a utilização do Gunicorn.Gunicórnio Como servidor de aplicativos, cuida da execução de código Python e do gerenciamento de multiprocessos.

4. Método 2 – Configurar Gunicorn (servidor WSGI em ambiente de produção)

Instale o Gunicorn

Instale o Gunicorn:

pip3 install gunicorn
  • 1

Execute o aplicativo Flask

Execute o aplicativo Flask usando Gunicorn:

gunicorn --bind 0.0.0.0:8000 app:app
  • 1

Execute o aplicativo Django

Use Gunicorn para executar aplicativos Django:

gunicorn --bind 0.0.0.0:8000 myproject.wsgi:application
  • 1

5. Use Nginx como proxy reverso

Instale o nginx

Instale o Nginx:

sudo yum install nginx
  • 1

Configurar o Nginx

Editar arquivo de configuração /etc/nginx/sites-available/default

server {
    listen 80;
    server_name your_domain_or_IP;

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

Recarregue a configuração do Nginx:

sudo systemctl restart nginx
  • 1

6. Use Systemd para gerenciar Gunicorn

Criar arquivo de serviço Systemd

Crie um novo arquivo de serviço Systemd:

sudo vim /etc/systemd/system/myproject.service
  • 1

Adicionar configuração de serviço

Aplicação de frasco
[Unit]
Description=Gunicorn instance to serve myproject
After=network.target

[Service]
User=your_user
Group=www-data
WorkingDirectory=/path/to/your/project
ExecStart=/usr/bin/gunicorn --workers 3 --bind unix:myproject.sock -m 007 app:app

[Install]
WantedBy=multi-user.target
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
Aplicativo Django

Vai ExecStart Mude a linha para:

ExecStart=/usr/bin/gunicorn --workers 3 --bind unix:myproject.sock -m 007 myproject.wsgi:application
  • 1

Inicie e ative o serviço

Inicie e ative o serviço:

sudo systemctl start myproject
sudo systemctl enable myproject
  • 1
  • 2

7. Verifique o status do serviço

Certifique-se de que o serviço esteja em execução:

sudo systemctl status myproject
  • 1

Dessa forma, sua API Python é implantada com sucesso no ambiente Linux. Você pode ajustar a configuração conforme necessário para atender às necessidades específicas do seu projeto. Espero que este guia detalhado tenha sido útil!