Berbagi teknologi

Menyebarkan layanan web Python di lingkungan Linux

2024-07-12

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

Masukkan deskripsi gambar di sini

"Nak, tergantung keberuntungan saat kita bertemu lagi. Jangan berpura-pura tidak mengenal satu sama lain. Jangan gemetar saat mengatakan" Lama tidak bertemu "..."

Untuk menerapkan API backend yang ditulis dengan Python ke lingkungan Linux, Anda dapat mengikuti langkah-langkah mendetail di bawah ini. Artikel ini akan membahas persiapan lingkungan, penulisan API, penggunaan Gunicorn sebagai server WSGI, konfigurasi Nginx sebagai proxy terbalik, dan penggunaan Systemd untuk mengelola layanan.

1. Mempersiapkan lingkungan

Instal Python

Jika Python tidak diinstal pada sistem Linux Anda, Anda dapat menggunakan perintah berikut untuk menginstalnya:

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

Instal perpustakaan yang diperlukan

Dengan asumsi Anda menggunakan kerangka Flask atau Django, pertama-tama instal pustaka yang diperlukan:

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

2. Tulis kode API

Contoh labu

Buat contoh Flask API sederhana:

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

Contoh Django

Buat proyek Django baru dan tambahkan API:

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

ada myapp/views.py Tambahkan tampilan API di:

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

ada myproject/urls.py Konfigurasikan perutean URL di:

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. Metode 1 - Startup langsung

Untuk memulai aplikasi dengan cepat di lingkungan pengembangan atau pengujian, Anda dapat menjalankannya secara langsung:

python main.py 或者 nohup python main.py
  • 1
Contoh Django:

Django mempunyai server pengembangannya sendiri, yang dapat Anda mulai dengan:

python manage.py runserver 0.0.0.0:8000
  • 1

Disarankan untuk menggunakan Gunicorn di lingkungan produksi Untuk memastikan kinerja dan stabilitas aplikasi di lingkungan produksi, Anda disarankan untuk menggunakan Gunicorn.Gunicorn Sebagai server aplikasi, menangani eksekusi kode Python dan manajemen multi-proses.

4. Metode 2 - Konfigurasikan Gunicorn (server WSGI di lingkungan produksi)

Instal Gunicorn

Instal Gunicorn:

pip3 install gunicorn
  • 1

Jalankan aplikasi Flask

Jalankan aplikasi Flask menggunakan Gunicorn:

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

Jalankan aplikasi Django

Gunakan Gunicorn untuk menjalankan aplikasi Django:

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

5. Gunakan Nginx sebagai proksi terbalik

Instal nginx

Instal Nginx:

sudo yum install nginx
  • 1

Konfigurasikan Nginx

Edit file konfigurasi /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

Muat ulang konfigurasi Nginx:

sudo systemctl restart nginx
  • 1

6. Gunakan Systemd untuk mengelola Gunicorn

Buat file layanan Systemd

Buat file layanan Systemd baru:

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

Tambahkan konfigurasi layanan

Aplikasi labu
[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
Aplikasi Django

Akan ExecStart Ubah baris menjadi:

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

Mulai dan aktifkan layanan

Mulai dan aktifkan layanan:

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

7. Periksa status layanan

Pastikan layanan berjalan:

sudo systemctl status myproject
  • 1

Dengan cara ini, API Python Anda berhasil diterapkan ke lingkungan Linux. Anda dapat menyesuaikan konfigurasi sesuai kebutuhan agar sesuai dengan kebutuhan spesifik proyek Anda. Semoga panduan terperinci ini bermanfaat!