Rumah > pembangunan bahagian belakang > Tutorial Python > Cara Menggunakan Aplikasi Flask di Vultr

Cara Menggunakan Aplikasi Flask di Vultr

Christopher Nolan
Lepaskan: 2025-02-08 08:31:09
asal
778 orang telah melayarinya

How to Deploy Flask Applications on Vultr

menggunakan aplikasi kelalang selamat dengan Gunicorn, nginx dan mari enkripsi

Flask adalah rangka kerja python untuk membina aplikasi web. Dengan Flask, pemaju dengan mudah boleh menentukan penghalaan, memproses permintaan dan respons HTTP, dan menjadikan kandungan dinamik menggunakan templat Jinja2. Ia juga menyokong sambungan yang membolehkan pemaju mengintegrasikan ciri -ciri seperti akses pangkalan data, pemprosesan borang, dan pengesahan pengguna.

Artikel ini akan menerangkan cara menggunakan Gunicorn untuk menggunakan aplikasi Flask dan melaksanakan perlindungan CSRF dan dasar keselamatan kandungan (CSP). Kami juga akan menyediakan proksi terbalik menggunakan NGINX dan memohon sijil SSL percuma melalui Let's Encrypt untuk melaksanakan HTTPS.

menggunakan contoh awan yang dioptimumkan vultr

    Daftar dan log masuk ke Portal Pelanggan Vultr.
  1. Navigasi ke halaman Produk.
  2. Pilih "Kira" dari menu sampingan.
  3. Klik butang "Deploy Server" di tengah.
  4. Pilih "Pengkomputeran Awan Dioptimumkan" sebagai jenis pelayan.
  5. Pilih lokasi pelayan.
  6. Pilih Ubuntu 24.04 sebagai sistem operasi.
  7. Pilih pakej yang betul.
  8. Pilih sebarang ciri tambahan jika perlu.
  9. Klik "Bergantung sekarang".

Tambah fail kod aplikasi demo

Sediakan persekitaran maya python

    Memasang pakej python3-venv:
  1. sudo apt install python3-venv Buat persekitaran maya:
  2. python3 -m venv myenv mengaktifkan persekitaran maya:
  3. source myenv/bin/activate
Tambah fail kod aplikasi demo

Repositori GitHub Clone: ​​
  1. git clone https://github.com/mayankdebnath/flask-todo-demo.git Navigasi ke Direktori Projek:
  2. cd flask-todo-demo/sample/ Memasang Pakej Flask dan Gunicorn:
  3. pip install flask gunicorn Benarkan sambungan masuk ke port 5000:
  4. ufw allow 5000
  5. Gunakan dasar perlindungan dan keselamatan kandungan CSRF

Pemalsuan Permintaan Laluan Laman (CSRF) adalah kelemahan yang membolehkan penyerang membuat permintaan yang tidak dibenarkan ke laman web yang berbeza yang dipercayai oleh pengguna menggunakan sesi log masuk di laman web yang dipercayai. WTForms adalah lanjutan flask yang mengintegrasikan perlindungan CSRF secara lalai untuk mengelakkan serangan CSRF.

Dasar Keselamatan Kandungan (CSP) adalah lapisan keselamatan tambahan untuk aplikasi web yang melindungi mereka dari serangan berniat jahat. CSP menunjukkan sumber -sumber penyemak imbas yang membolehkan untuk memuatkan pada laman web tertentu. Biasanya, pentadbir laman web mengkonfigurasi CSP dengan menambah tajuk khas ke respons pelayan laman web, dan penyemak imbas kemudian menerima tajuk CSP dan memahami sumber yang dibenarkan untuk dimuatkan. Talisman adalah lanjutan flask yang memudahkan proses menambah CSP ke aplikasi flask.

  1. Memasang Pakej Flask-WTF dan Talisman: pip install flask-wtf talisman
  2. Buka fail app.py: nano app.py
  3. Edit Fail App.py Untuk memasukkan dasar keselamatan kandungan:
from talisman import Talisman

talisman = Talisman(
    app,
    content_security_policy={
        'default-src': ['\'self\''],
        'script-src': ['\'self\'', '\'unsafe-inline\'', 'https://code.jquery.com'],
        'style-src': ['\'self\'', '\'unsafe-inline\'', 'https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css', 'https://todoapp5.ddns.net/static/styles.css', 'https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css'],
    },
    force_https=True,
    session_cookie_secure=True,
    frame_options='DENY',
)
Salin selepas log masuk
  1. dalam fail app.py, import dan konfigurasikan perlindungan csrf:
from flask_wtf.csrf import CSRFProtect

app.config['SECRET_KEY'] = 'your_secret_key_here'
csrf = CSRFProtect(app)
csrf._csrf_request_token_key = 'X-CSRFToken'
Salin selepas log masuk

simpan dan tutup fail.

  1. Navigasi ke direktori templat: cd templates
  2. Buka fail index.html: nano index.html
  3. edit halaman html untuk memasukkan konfigurasi csrf:
var csrfToken = $('input[name="csrf_token"]').val();

$.ajaxSetup({
    beforeSend: function(xhr, settings) {
    if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type) && !this.crossDomain) {
    xhr.setRequestHeader("X-CSRFToken", csrfToken);
        }
    }
});
Salin selepas log masuk

simpan dan tutup fail. 8. Keluar Direktori Templat: cd ..

Konfigurasi nginx sebagai proksi terbalik

nginx bertindak sebagai proksi terbalik antara pelayan web dan klien. Ia memisahkan permintaan masuk berdasarkan tetapan konfigurasi permintaan anda. Dalam seksyen ini, kami akan mengkonfigurasi permohonan untuk proksi terbalik untuk pemprosesan permintaan yang cekap dan mengimbangi beban. Kami juga akan memohon sijil SSL percuma dari Let's Encrypt untuk melaksanakan HTTPS, dengan itu melindungi komunikasi antara pengguna dan pelayan Web.

  1. Log masuk ke portal pelanggan Vultr.
  2. Navigasi ke halaman Produk.
  3. memperluaskan menu drop-down rangkaian dari menu sampingan dan pilih DNS.
  4. Klik butang "Tambah Domain Nama" di tengah.
  5. ikuti langkah tetapan untuk menambah nama domain anda dan pilih alamat IP pelayan.
  6. Gunakan pendaftar domain anda untuk menetapkan nama hos berikut sebagai pelayan nama utama dan sekunder untuk nama domain: ns1.vultr.com dan ns2.vultr.com.
  7. Memasang nginx: sudo apt install nginx
  8. Buat fail konfigurasi nginx baru: sudo nano /etc/nginx/sites-available/app.conf
  9. Tampalkan konfigurasi berikut ke dalam fail:
server {
    listen 80;
    listen [::]:80;

    server_name <your_domain>;

    location / {
        proxy_pass http://127.0.0.1:5000/;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
Salin selepas log masuk
  1. Aktifkan konfigurasi hos maya: sudo ln -s /etc/nginx/sites-available/app.conf /etc/nginx/sites-enabled/
  2. menguji konfigurasi nginx: sudo nginx -t
  3. Reload nginx: sudo systemctl reload nginx
  4. Benarkan sambungan masuk ke port 80 dan 443: sudo ufw allow 80/tcp && sudo ufw allow 443/tcp
  5. Memasang pakej certbot: sudo snap install --classic certbot
  6. memohon sijil SSL: (ganti example.com dengan nama domain anda) sudo certbot --nginx -d example.com -d www.example.com
  7. Mulakan pelayan Gunicorn:
  8. gunicorn -b 0.0.0.0:5000 app:app
  9. Anda kini boleh mengakses aplikasi Flask anda melalui
  10. . https://<your_domain></your_domain>

Lakukan lebih banyak dengan aplikasi python pada vultr

    Aplikasi Web Python Containerize
  • Pasang Python dan Pip di Ubuntu 24.04
  • menggunakan kesimpulan awan vultr dalam python
  • perbincangan mendalam mengenai pakej python AI/ml penting
  • carian yang didorong AI menggunakan pangkalan data vektor python dan milvus
  • Laksanakan tugas pemprosesan bahasa semulajadi menggunakan python

Kesimpulan

Artikel ini meneroka cara menggunakan aplikasi flask menggunakan proksi terbalik NGINX dan Gunicorn, dan melaksanakan perlindungan CSRF dan CSP. Kami juga melindungi keselamatan aplikasi kami dengan menambah sijil SSL dan membolehkan akses HTTPS.

Artikel ini ditaja oleh Vultr. Vultr adalah platform pengkomputeran awan swasta terbesar di dunia. Vultr disayangi oleh pemaju dan telah menyediakan pengkomputeran awan global yang fleksibel dan berskala, GPU awan, penyelesaian logam dan awan yang terdedah kepada lebih daripada 1.5 juta pelanggan di 185 negara. Ketahui lebih lanjut mengenai Vultr

Atas ialah kandungan terperinci Cara Menggunakan Aplikasi Flask di Vultr. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan