Что установлено на вашем сервере Python?
- Python 3.12 из репозитория Ubuntu 24.04
- Виртуальное окружение в /home/app/uygulama/venv
- Gunicorn 26 с 2 воркерами на 127.0.0.1:8000
- Служба systemd с именем uygulama, которая запускается при загрузке и перезапускается после сбоя
- HTTPS через Caddy на адресе sslip.io, построенном по вашему IP, так что домен необязателен
- Непривилегированный пользователь app, чтобы ваш код не работал от root
- Брандмауэр, в котором открыты только порты 22, 80 и 443
Какой размер нужен для Python?
В документации Python нет цифры по оперативной памяти: всё зависит от вашего приложения. Gunicorn загружает приложение в отдельный процесс для каждого воркера, поэтому память растёт вместе с их числом. Gunicorn советует начинать с (2 x ядер) + 1 воркеров, а в этой установке их 2. Ориентир такой: для небольшого API хорошо начать с 1 ГБ, а для нескольких воркеров или тяжёлых пакетов — 2–4 ГБ. Если этого мало, увеличьте оперативную память, CPU и диск по отдельности в панели, а ваши данные и IP-адрес останутся прежними.
| Применение | Размер | Цена | Выбрать |
|---|---|---|---|
| Стартовый | 1 GB RAM · 1 vCore · 25 GB NVMe | $2.58/мес. | |
| Средний | 2 GB RAM · 1 vCore · 40 GB NVMe | $4.01/мес. | |
| Мощный | 4 GB RAM · 2 vCore · 60 GB NVMe | $6.89/мес. |
Кому подходит?
- Разработчики, публикующие API или веб-приложение на Flask или FastAPI
- Проекты, которым на виртуальном хостинге стало тесно из-за версии Python или пакетов
- Те, кто запускает на собственном сервере Python-приложение, собранное с помощью ИИ-инструментов
- Те, кто занимается обработкой данных, автоматизацией или запуском скриптов по расписанию
Что будет после заказа?
- Задайте размер и оплатите заказ.
- Сервер запускается, и Python с Gunicorn устанавливаются сами. В наших проверках на настоящих серверах это заняло около 3 минут.
- На вкладке «Обзор» откройте «Адрес сайта». На пробной странице показана версия Python.
- Подключитесь по SSH, выполните su - app, перейдите в папку командой cd ~/uygulama и перенесите туда свой код, например через git clone.
- Установите зависимости: venv/bin/pip install -r requirements.txt
- Сделайте так, чтобы wsgi.py отдавал ваше приложение как app, вернитесь к root командой exit и выполните systemctl restart uygulama.
С каждым сервером
- Ежедневные бэкапы входят в цену
- Безлимитный трафик
- Полный root-доступ
- Позже можно увеличить или уменьшить RAM и CPU, а диск увеличить
- Расположение: Istanbul · IST-1.
Полезно знать
- Gunicorn запускает wsgi:app. Для другого модуля измените строку ExecStart в /etc/systemd/system/uygulama.service и выполните systemctl daemon-reload.
- Воркеры при увеличении сервера сами не добавляются. Значение --workers вы меняете в том же файле службы.
- Чтобы компилировать расширения на C, выполните от root apt install build-essential python3-dev.
- Обновления безопасности Ubuntu и Python устанавливаются сами. Пакеты pip в своём виртуальном окружении вы обновляете сами.
- Ваше приложение должно слушать 127.0.0.1:8000, а публичным адресом занимается Caddy. Если открыть Gunicorn наружу, HTTPS будет обойдён.
- Если сертификат выпустить не удаётся, сайт открывается по http на вашем IP-адресе.
Python: вопросы и ответы
Как развернуть приложение на Flask?
Положите код в ~/uygulama и установите зависимости через venv/bin/pip. Сделайте так, чтобы wsgi.py отдавал приложение как app, затем выполните от root systemctl restart uygulama. Либо замените wsgi:app в строке ExecStart на project:app (или на project:create_app(), если у вас фабрика приложения) и выполните systemctl daemon-reload.
Работает ли FastAPI на этом сервере?
Да. FastAPI использует ASGI, и с ним справляется встроенный ASGI-воркер Gunicorn. В строке ExecStart замените wsgi:app на --worker-class asgi main:app, затем выполните systemctl daemon-reload и systemctl restart uygulama. Адрес привязки оставьте 127.0.0.1:8000.
Сколько оперативной памяти нужно для Python-хостинга?
Официальной цифры по оперативной памяти у Python нет: всё зависит от приложения и числа воркеров. Ориентир такой: для небольшого API хорошо начать с 1 ГБ, а для нескольких воркеров или пакетов для анализа данных — 2–4 ГБ.
Можно ли сменить версию Python?
На сервере стоит Python 3.12 из Ubuntu 24.04. У вас есть root-доступ, поэтому можно установить и другую версию. Пересоздайте виртуальное окружение с этой версией, затем заново установите свои пакеты и Gunicorn.
Остановится ли приложение, если я выйду из SSH?
Нет. Ваш код на Python работает как служба systemd с именем uygulama. Она продолжает работать после выхода, а после сбоя или перезапуска сервера поднимается снова. Её вывод можно прочитать командой journalctl -u uygulama.
Подойдёт ли этот сервер для Django?
Да. Gunicorn запускает и Django, поэтому в строку ExecStart вы запишете project.wsgi:application. Если хотите, чтобы Django и его настройки установились за вас, посмотрите вариант сервера с Django.