فلسک (Flask) یک میکرو فریمورک محبوب پایتون است که به دلیل سادگی و انعطافپذیری بالا شهرت دارد. از سوی دیگر، Vultr یک ارائهدهنده خدمات ابری با کارایی بالا است. این راهنما به صورت گام به گام شما را در فرآیند استقرار یک برنامه فلسک بر روی سرور Vultr، از راهاندازی اولیه سرور گرفته تا ایمنسازی آن با Nginx و گواهی SSL، همراهی میکند.
قبل از شروع، اطمینان حاصل کنید که موارد زیر را در اختیار دارید:
ابتدا وارد حساب کاربری Vultr خود شوید و یک سرور جدید ایجاد کنید. نوع سرور (Cloud Compute گزینه خوبی برای شروع است)، موقعیت جغرافیایی و سیستمعامل را انتخاب نمایید. ما استفاده از Ubuntu 22.04 LTS را به دلیل پایداری و پشتیبانی طولانیمدت توصیه میکنیم. پس از فعال شدن سرور، آدرس IP و اطلاعات ورود را دریافت خواهید کرد. با استفاده از SSH به سرور خود متصل شوید:
ssh root@your_server_ip
پس از اتصال، بستههای نرمافزاری سرور خود را بهروزرسانی کنید:
sudo apt update && sudo apt upgrade -y
سپس، پایتون، pip و ماژول محیط مجازی (venv) را نصب کنید:
sudo apt install python3-pip python3-venv -y
برای مدیریت بهتر، یک دایرکتوری برای برنامه خود ایجاد کرده و یک محیط مجازی پایتون راهاندازی کنید تا وابستگیهای پروژه ایزوله شوند.
mkdir ~/myproject
cd ~/myproject
python3 -m venv venv
source venv/bin/activate
فایلهای برنامه فلسک خود را به دایرکتوری `~/myproject` منتقل کنید. استفاده از Git برای این کار بسیار رایج است:
git clone https://github.com/yourusername/myproject.git .
سپس، بستههای پایتون مورد نیاز پروژه را با استفاده از فایل `requirements.txt` نصب کنید:
pip install -r requirements.txt
سرور توسعه داخلی فلسک برای محیط عملیاتی (production) مناسب نیست. به همین دلیل، از Gunicorn به عنوان یک سرور WSGI قدرتمند استفاده میکنیم. برای نصب آن، دستور زیر را اجرا کنید:
pip install gunicorn
برای تست، برنامه خود را با Gunicorn اجرا کنید (فرض بر این است که فایل اصلی `wsgi.py` و نمونه برنامه `app` نام دارد):
gunicorn --workers 3 --bind 0.0.0.0:8000 wsgi:app
این دستور برنامه شما را روی پورت ۸۰۰۰ اجرا میکند.
برای اینکه برنامه شما به صورت خودکار پس از راهاندازی مجدد سرور اجرا شود و مدیریتی آسان داشته باشد، یک سرویس systemd برای آن ایجاد میکنیم. یک فایل سرویس جدید بسازید:
sudo nano /etc/systemd/system/myproject.service
محتوای زیر را در این فایل قرار دهید و مسیرها را مطابق با تنظیمات خود تغییر دهید:
[Unit]
Description=Gunicorn instance to serve myproject
After=network.target
[Service]
User=youruser
Group=www-data
WorkingDirectory=/home/youruser/myproject
Environment="PATH=/home/youruser/myproject/venv/bin"
ExecStart=/home/youruser/myproject/venv/bin/gunicorn --workers 3 --bind unix:myproject.sock -m 007 wsgi:app
[Install]
WantedBy=multi-user.target
اکنون سرویس را فعال و اجرا کنید:
sudo systemctl start myproject
sudo systemctl enable myproject

Nginx به عنوان یک پراکسی معکوس عمل کرده و درخواستهای ورودی را به Gunicorn هدایت میکند. این کار مزایای امنیتی و عملکردی فراوانی دارد. ابتدا Nginx را نصب کنید:
sudo apt install nginx -y
سپس یک فایل پیکربندی جدید برای سایت خود در Nginx ایجاد کنید:
sudo nano /etc/nginx/sites-available/myproject
این پیکربندی را اضافه کنید و `your_domain.com` را با دامنه خود جایگزین نمایید:
server {
listen 80;
server_name your_domain.com www.your_domain.com;
location / {
include proxy_params;
proxy_pass http://unix:/home/youruser/myproject/myproject.sock;
}
}
پیکربندی را فعال کرده و Nginx را مجدداً راهاندازی کنید:
sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled
sudo systemctl restart nginx
در آخرین مرحله، سایت خود را با فعالسازی HTTPS ایمن میکنیم. برای این کار از Certbot و Let's Encrypt استفاده خواهیم کرد که گواهیهای SSL رایگان ارائه میدهند. Certbot را نصب کنید:
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
اکنون با استفاده از پلاگین Nginx، گواهی SSL را درخواست و نصب کنید:
sudo certbot --nginx -d your_domain.com -d www.your_domain.com
Certbot به صورت خودکار پیکربندی Nginx شما را برای پشتیبانی از HTTPS بهروز میکند و فرآیند تمدید خودکار گواهی را نیز تنظیم مینماید.

تبریک میگوییم! شما با موفقیت یک برنامه پایتون مبتنی بر فلسک را بر روی سرور Vultr مستقر کردید. با استفاده از ترکیب قدرتمند Gunicorn، Nginx و Let's Encrypt، شما اکنون یک زیرساخت قوی، امن و آماده برای محیط عملیاتی در اختیار دارید.