پیش از خرید هاست پایتون چه چیزهایی را بسنجید
قبل از خرید هاست پایتون باید بدانید که با یک هاست PHP معمولی فرق دارد. برنامه پایتون یک پروسه است که باید زنده بماند و حافظه بگیرد، پس سقف رم و سقف پروسه بیشتر از حجم دیسک روی تجربه شما اثر می گذارد. قبل از انتخاب پلن، سه عدد را از پروژه خودتان دربیاورید.
اول مصرف رم برنامه بعد از بالا آمدن. یک پروژه Django ساده با چند اپ رم نسبتا کمی می گیرد و با کتابخانه های سنگین مثل pandas یا مدل های یادگیری ماشین این عدد خیلی بالاتر می رود. دوم تعداد کاربران همزمان. سوم اینکه پروژه پایگاه داده می خواهد یا نه، چون روی این سرویس هم MySQL و هم PostgreSQL در دسترس است.
- پلن های پایتون از 1 گیگابایت فضا، 2 گیگابایت رم و 5 مگابایت I/O شروع می شوند و تا 10 گیگابایت فضا بالا می روند.
- اگر پروژه شما فقط یک API کوچک یا یک اسکریپت زمان بندی شده است، پایین ترین پلن معمولا برای شروع کافی است.
- اگر فایل های رسانه ای کاربران را روی همین هاست نگه می دارید، فضا را بر اساس رشد شش ماه آینده انتخاب کنید و همه چیز را با اندازه امروز نسنجید.
Django و Flask روی هاست پایتون
Django و Flask هر دو برنامه های WSGI هستند و روی هاست پایتون با cPanel از یک مسیر اجرا می شوند. تفاوت اصلی در چند قدم راه اندازی است.
| مورد | Django | Flask |
|---|---|---|
| نقطه شروع | Setup Python App در cPanel | Setup Python App در cPanel |
| نصب وابستگی ها | pip install -r requirements.txt در محیط مجازی اپ | pip install -r requirements.txt در محیط مجازی اپ |
| فایل ثابت و استایل | collectstatic بعد از هر تغییر | پوشه static را با تنظیمات پروژه یا وب سرور سرویس دهی کنید |
| تنظیمات واقعی | DEBUG=False و ALLOWED_HOSTS با دامنه خودتان | debug را خاموش کنید و کلید محرمانه را بیرون از کد نگه دارید |
| دیتابیس | migrate بعد از گرفتن پشتیبان | طبق ابزار ORM پروژه، مثل Flask-Migrate |
اگر پروژه شما لاراول یا PHP است، به هاست پایتون لازم نیست و هاست لینوکس ساده تر است. برای ربات تلگرام پایتونی هم همین هاست و راهنمای هاست پایتون و جنگو را ببینید.
مقایسه لوکیشن ها برای پروژه پایتون
لوکیشن را بر اساس کاربران پروژه و سرویس هایی که صدا می زند انتخاب کنید. جدول زیر تفاوت ها را خلاصه می کند.
| معیار | ایران | هلند | آلمان |
|---|---|---|---|
| سرویس ها و مخزن های خارجی | ممکن است بعضی از آن ها از سرور ایران در دسترس نباشند | مستقیم | مستقیم |
| کاربران ایرانی | فاصله شبکه کمتر | ممکن است کمی بیشتر باشد | ممکن است کمی بیشتر باشد |
| مناسب چه پروژه ای | پروژه با کاربر ایرانی و سرویس های داخلی | پروژه با مخاطب بین المللی یا وابسته به سرویس خارجی | همان نوع پروژه های هلند |
اگر هنوز مطمئن نیستید، پروژه را روی یک ساب دامنه موقت امتحان کنید و ببینید فراخوانی سرویس های بیرونی بدون مشکل جواب می دهد یا نه.
اندازه پروژه و پلن مناسب
جدول زیر چند حالت رایج را به یک تصمیم ساده وصل می کند. رم پروسه را بعد از بالا آمدن برنامه اندازه بگیرید و پلن را بر همان پایه انتخاب کنید.
| پروژه | انتخاب پیشنهادی |
|---|---|
| API کوچک یا اسکریپت زمان بندی شده | پایین ترین پلن |
| Django با دیتابیس و چند صفحه محتوا | پلن میانی، بعد از اندازه گیری رم |
| کتابخانه های سنگین مثل pandas یا کار پس زمینه | رم بیشتر، یا سرور مجازی |
| Celery یا Redis با کارگر دائمی | سرور مجازی ایران |
راه اندازی Django روی سی پنل، مرحله به مرحله
هاست پایتون سی پنل دسترسی ترمینال هم می دهد، بنابراین مسیر معمول شبیه یک سرور لینوکس است. اگر در پنل گزینه Setup Python App را می بینید، همان نقطه شروع است. نسخه پایتون را انتخاب می کنید، پوشه پروژه و آدرس دامنه را می دهید و پنل یک محیط مجازی می سازد.
بعد از ساخت اپ، با ترمینال سی پنل یا با ssh وارد همان محیط مجازی شوید و وابستگی ها را نصب کنید. دستور pip install -r requirements.txt بیشتر مواقع کافی است. بعد migrate را اجرا کنید و فایل های ثابت را با collectstatic در پوشه ای بریزید که وب سرور مستقیم بخواند.
در settings.py مقدار DEBUG را در محیط واقعی False بگذارید و ALLOWED_HOSTS را فقط با دامنه خودتان پر کنید. این دو خطا در پروژه های تازه منتقل شده از همه رایج ترند. گواهی SSL رایگان است، پس SECURE_SSL_REDIRECT را هم بعد از فعال شدن گواهی روشن کنید.
چند نسخه پایتون در دسترس است. نسخه ای را انتخاب کنید که پروژه روی سیستم خودتان با آن اجرا و تست شده، نه جدیدترین نسخه ای که در فهرست می بینید. اگر پروژه شما با یک نسخه Django خاص نوشته شده، در requirements.txt نسخه را دقیق قفل کنید تا نصب دوباره روی هاست همان بسته ها را بیاورد.
با python --version داخل محیط مجازی مطمئن شوید همان نسخه مورد نظر فعال است. اشتباه رایج این است که بسته ها با pip سیستم نصب می شوند و برنامه از محیط مجازی اجرا می شود. نتیجه یک خطای ImportError است که ربطی به کد شما ندارد.
یک مثال سنجش پلن
فرض کنید یک سایت شرکتی با Django و PostgreSQL دارید که پنل مدیریت و چند صفحه محتوا دارد. بعد از بالا آمدن، رم پروسه را در ترمینال با ps یا top نگاه کنید. اگر عدد مصرفی نصف رم پلن 2 گیگابایتی هم نمی شود، همین پلن برای ترافیک متوسط جا دارد.
حالا همان پروژه را با یک کار پس زمینه مثل پردازش تصویر یا ساخت گزارش PDF در نظر بگیرید. کار پس زمینه پروسه جدا می سازد و رم را بالا می برد. اینجا بهتر است ابتدا مصرف را با یک کار واقعی اندازه بگیرید، بعد تصمیم بگیرید پلن را از طریق تیکت ارتقا بدهید. ارتقا با تیکت انجام می شود و لازم نیست پروژه را جابه جا کنید.
پیش از مهاجرت، پروژه را اینجا تست کنید
قبل از اینکه دامنه را به هاست جدید بیاورید، پروژه را روی یک ساب دامنه موقت بالا بیاورید و این چند کار را انجام دهید: ورود به پنل ادمین، آپلود یک فایل، ارسال یک ایمیل آزمایشی و اجرای یک دستور مدیریتی Django. اگر دیتابیس دارید، خروجی را با mysqldump یا pg_dump بگیرید و روی هاست جدید بازیابی کنید و تعداد رکوردها را مقایسه کنید.
برای کمک در جابه جایی می توانید از خدمات انتقال سایت استفاده کنید. تنظیم کران جاب ها هم در مقاله راه اندازی کران جاب در سی پنل آمده است.
چند اشتباه که زیاد دیده می شود
- فایل .env یا settings.py با رمز دیتابیس را داخل پوشه عمومی گذاشتن. کد را بیرون از public_html نگه دارید.
- فراموش کردن collectstatic و دیدن پنل ادمین بدون استایل.
- تغییر کد روی هاست و نصب نکردن دوباره وابستگی ها، بعد از عوض شدن نسخه پایتون.
- اجرای migrate روی دیتابیس واقعی بدون گرفتن پشتیبان. پیش از هر تغییر ساختار، یک خروجی از دیتابیس بگیرید.
چه زمانی این محصول مناسب نیست
اگر برنامه شما به نصب بسته های سیستمی خاص، Redis یا Celery با کارگر دائمی، یا کنترل کامل روی systemd نیاز دارد، هاست اشتراکی سقف شما می شود. در این حالت سرور مجازی ایران با دسترسی root انتخاب بهتری است. اگر می خواهید برنامه را در کانتینر اجرا کنید هم راه اندازی داکر مسیر درست تری است.
همچنین اگر ترافیک پروژه ناگهانی و سنگین است یا چندین سرویس جدا باید کنار هم بالا بیایند، هاست پایتون برای آن ساخته نشده. بعد از چند هفته کارکرد، با نگاه به صفحه مصرف منابع در سی پنل تصمیم بگیرید که در همین پلن بمانید یا جابه جا شوید.
مقاله های مرتبط
آخرین بروزرسانی متن: