Введение или про что будет эта статья
В этой статье я расскажу и покажу, как можно разместить сайта на серверах от reg.ru (хостинг-провайдер). Данный провайдер предоставляет широкий выбор платформ разработки/CMS, которые используются для создания сайта. Но в этой статье я расскажу только о том, как развернуть сайт написанный на Django, ибо разбираюсь в этом.
Кроме предоставления обычного хостинга, reg предоставляет такую услугу как VPS.
Так вот, на reg.ru , можно разместить сайт двумя способами. Первый - простой, но ограниченный, второй - сложный, но и от того куда более интересный. Первый заключается в том, чтобы использовать готовое решение от самого хостинга и немного поколдовать в докере. Суть второго способа, заключается в том, чтобы создать свой VPS и настроить сервер в ручную.
Я продемонстрирую оба, объясню в чём особенности и нюансы обоих, и почему лучше, по моему мнению, именно VPS.
Особенности данной статьи
Для демонстрации я буду использовать специально сделанное для этого django-приложение. Это приложение было специально сделано со всеми фишками, которые возможно потребуются сайту в будущем:
- работа и настройка с БД
- получение статики
- загрузка на сайт различных медиа
- переводы
- тесты
Так же, я собираюсь использовать следующие домены:
- search-result-parser.site - для деплоя сайта на хостинге
- bddt2.space - для деплоя сайта на VPS
Предварительная подготовка, приобретаем домен
В этой главе, потребуется полазить по самому сайту reg.ru и проделать некоторые подготовительные шаги, которые являются общими, что для деплоя сайта через хостинг, что через VPS.
В личном кабинете , нажимаете заказать и выбираете услугу "домен":

- Нажимаешь
- Выбираешь домен
- Вводишь желаемый
- Подбираешь
После, тебе покажут различные вариации твоего домена в различных зонах. Для них будут применены разные скидки и цены. Я выбрал bddt2.space и search-result-parser.site.
Это не всё, на новой странице тебе предложат кучу других услуг, которые может и были бы полезны в других сценариях и при других обстоятельствах, но не сейчас. Нам просто нужно зарегистрировать домен.

Разворачиваем сайт на хостинге
Развернуть сайт на хостинге от reg.ru, куда проще нежели чем на beget. Просто, всё дело в том, что нам не придётся устанавливать необходимое ПО (такое, как Python или OpenSSL, они уже там), да и некоторые шаги автоматизированны (например вход в докер контейнер) - это всё в сравнении с деплоем сайта на beget.
Настройка хостинга
Всё начинается с приобретения такой услуги как хостинг. Я думаю, ты уже приобрёл данную услугу на reg.ru иначе ты бы не был здесь :) Нам нужно будет зайти в ISPManager - админка для управления хостингом:

После перейти в панель управления (значок компьютера):

Дальше, нужно будет на дашборде перейти на все сайты(1), выбрать соответствующий сайт(2) и нажать кнопку изменить параметры(3). Так как мы уже приобрели домен, у нас будет один готовый сайт.

Теперь про то, какие рычажки и кнопочки нужно будет прожмякать обязательно. Если быть более конкретным это выбрать необходимую версию пайтона и подключить CGI-скрипты.

Хочу отметить, если твой django-сайт написан на версиях выше 4.2, то для тебя (ровно, как и для меня) подойдёт только одна версия python, 3.10.1. Так же, если ты ещё покупал SSL-сертификат включи и его.
Мы закончили базовую настройку хостинга. И в отличие от хостинг-провайдера beget, нам не потребуется вручную скачивать и устанавливать необходимую версию python и openssl, они уже есть.
Создаём базу данных
Любому сайту, так или иначе требуется место для хранения данных. Хостинг провайдер поддерживает только MySQL 8 базы данных, по этому будем работать с ними.
Давай покажу как создать одну такую:


- Где u3044930_bddt2_bd - это имя базы данных
- Где u3044930_bddt2_user - это имя пользователя, который будет работать в базе данных
- Это просто пароль, запомни или запиши.
- Можно поставить, а можно не ставить - не имеет значения. Удалённый доступ к таким базам данным всё равно не разрешён
Деплой
Развёртывание сайта всегда начинается с переноса его файлов и установки необходимых зависимостей. Их можно перенести двумя способами, или через панель управления, или используя scp-команду, через терминал. Здесь я рассмотрю только первый способ, ибо это тупо проще.
Сначала зайди в файловый менеджер, после чего нужно будет зайти в директорию под названием того доменного имени, которое ты купил. В моём случае это search-result-parser.site. Все такие директории находятся в www директории.

Загрузим архив с файлами сайта и распакуем его соответственно там же. Позже, в корневой директории сайта создай виртуальное окружение, активируй его и установи необходимые пакеты через pip:
Мы успешно перенесли файлы нашего сайта, а так же подготовили виртуальное окружение для работы нашего приложения. Дальше мы подключим, ранее созданную базу данных, разберёмся со статикой и подключимся к Apache2 веб-серверу.
Подключение к базе данных
Необходимо сразу подключить сайт к базе данных, которую мы недавно создали. В файле настроек Django-сайта отредактируй следующие строки:
Но это ещё не всё. Конкретно сейчас нас интересуют следующие ключи в словаре:
- NAME - Имя базы данных, в моём случае это u3044930_bddt2_bd
- USER - Имя пользователя базы данных, в моём случае это u3044930_bddt2_user
- PASSWORD - Пароль от базы данных
Все остальные значения остаются такими, какими я их указал. Чтобы узнать наверняка и завершить данную главу, давай сделаем миграцию на новую базу данных, для этого:
Теперь все необходимые таблицы и связи между ними были созданы. И мы можем спокойно работать с Django ORM.
Настройка директорий для статических и медиа файлов
Для того чтобы сервер мог получить доступ к нашим файлам все они должны быть в корневой директории сайта, то есть в моём случае это /www/search-result-parser.site/. Надо будет сделать мягкие ссылки на директории static/ и media/ в корневой директории. Для этого, сперва, создаём директории:
После создаём мягкие ссылки:
И в качестве завершения данной главы и теста, всё ли мы сделали правильно, давай соберём всю статику в приложении:
Все статические файлы должны быть доступны под директорией /www/search-result-parser.site/static/. А все медиа файлы, при загрузке на сервер чего-нибудь, должны быть в /www/search-result-parser.site/media/.
Подключение к WSGI-серверу
Теперь подключимся к веб-серверу хостинга. У reg.ru - это Apache2. Для этого нужно будет создать специальный файл passenger_wsgi.py, где его содержимое:
- Где вместо sys.path.insert(0, ..., ты должен будешь указать путь до корневой папки своего django-сайта.
- Где вместо sys.path.insert(1, ..., ты должен будешь указать свой путь до пакетов в виртуальном окружении, созданным ранее.
Мы закончили, разворачивать наш сайт на хостинге от reg.ru.
Как перезапустить сервер?
Разворачиваем сайт на VPS
Создаём VPS на Reg.ru
Для создания выделенных серверов, рег предоставляет очень широкий ассортимент в выборе операционных систем, готовых систем и в выборе железа, на котором ты будешь размещать свой VPS. Плюс, хочу заметить цену, они значительно дешевле в сравнении с тем же beget.
Итак, перейди на эту страницу конфигурации https://www.reg.ru/vps/.
- Тут мы выберем Ubuntu LTS 24.04 (самая последня версия на данный момент).
- Тип и мощность процессора
- Тариф, много нам не надо. Но чем требовательней сайт, тем больше тебе потребуется

Делаем заказ и оплачиваем.
Редактируем DNS записи и добавляем поддомен
На текущий момент у тебя есть домен и VPS, но они пока никак не связаны. Чтобы связать приобретённый домен и ново созданный VPS нам потребуется покопаться в DNS записях. Именно в тех, что были отправлены тебе письмом при создании сервера, а если более конкретно то это - ns5.hosting.reg.ru • ns6.hosting.reg.ru.
Открой страницу со всеми приобретёнными доменами и выбери пункт редактирования DNS:

После этого нужно поменять DNS-сервера по умолчанию на те, что я указал выше, то есть: ns5.hosting.reg.ru • ns6.hosting.reg.ru.


Мы успешно поменял DNS-сервера, теперь необходимо сделать соответствующие A или AAAA записи для указания адреса нашего VPS.
И где, собственно говоря, редактировать этот ваш DNS? Редактирование DNS серверов для VPS происходит в отдельной админке. Его адрес указывается во всё том же письме при создании VPS. Там же логин и пароль от него.
При создании домена, нужно указать его имя - bddt2.space и IP купленного VPS.

После успешного добавления домена в DNS, нам не нужно больше ничего делать. Но если, тебе нужно будет добавить поддомен, например. Или изменить адрес VPS сервера, то:


Где заполняем все требуемые поля, IP будет таким же как и у основного домена, только имя будет другим. Так, например, мой домен bddt2.space, а поддемен я назову staging.bddt2.space.
Таким образом, при обращении по указанному домену (в моём случае это bddt2.space), DNS сервер укажет на нужный нам (то есть созданный нами) VPS сервер.
Создаём базу данных
Создание базы данных на reg.ru немного мудрёное по моему мнению. Так например, почему бы не разрешать удалённый доступ к базам данным созданным в ISPManager. Это быстро, легко и удобно.
Но, они решили пойти другим путём. Для тех кто разворачивает сайт на VPS, придётся:
- Либо создавать базу данных на том же VPS сервере
- Либо воспользоваться облаком и создать там
- Либо использовать базы данных других хостингов.
Я буду демонстрировать 2й способ, ибо ты уже наверняка оплатил хостинг и было бы странно и неэкономно пользоваться чужими услугами. Создание базы данных в облаке reg, очень просто:

- Выбираем тип базы данных (в моём случае я буду работать с MySQL)
- Выбираем тариф

- Нужна ли нам отказоустойчивая база данных. Если одна падёт, на её место станет другая, её точная копия
- Имя базы данных, надо запомнить - в моём случае это bddt2_bd
- Имя пользователя, через которого мы будем подключаться к базе данных - bddt2_user
- Пароль
После чего жмякаем "создать кластер" и ждём, когда данный кластер будет создан. На это потребуется время.
Когда, наш кластер создастся, нам нужно будет узнать хоста к которому можно подключиться и порт на котором сидит MySQL сервер. Для этого:

- Открыв создавшийся кластер зайди во вкладку "Базы данных"
- bddt2_bd - имя базы данных к которой подключаешься
- bddt2_user - имя пользователя через которого подключаешься
- 79.174.89.21 - адрес хоста на котором сидит MySQL сервер
- 18320 - порт на котором данная база данных принимает запросы
Теперь у нас есть всё необходимое для подключения к базе данных для нашего сайта на VPS.
Подключаемся к созданному VPS, через SSH
Мы успешно создали свой первый виртуальный сервер( и базу данных) на Рег, теперь нужно к нему подключиться. Для этого будем использовать SSH. И чтобы можно было подключиться к нашему серверу нужно узнать его IP и пароль к нему. Всё это приходит по почте, которую вы указали при регистрации аккаунта на Рег.

- Адрес виртуального сервера
- Имя пользователя для входа на сервер
- Пароль авторизации на сервер
Если по какой-то причине тебе не пришло письмо, то адрес сервера можно узнать зайдя в панель управления виртуальными серверами на https://cloud.reg.ru/panel:


Пароль при необходимости можно будет сбросить, а имя пользователя к которому всегда можно подключиться это root - всегда. Подключимся же к нашему серверу:
Так как я пока работаю и сижу на Windows, буду использовать самый простой и доступный способ, здесь и дальше - PowerShell.
Подключение к серверу по ключу (опционально)
Я вангую, тебе придётся очень часто заходить на удалённый сервер, хотя бы потому, что связь может постоянно обрываться, а вручную вписывать пароль для подключения, та ещё задачка.
По этому, предлагаю создать ключ-пару для авторизации без пароля. Для этого, на своём рабочем компьютере, введи команду:
- Где флаг -t отвечает за тип сгенерированного ключа
- Где флаг -f отвечает за путь к файлу (который может не существовать), куда будет сохранён ключ
После генерации у тебя будут два файла, bddt2 и bddt2.pub. Первый (bddt2), это приватный ключ, храни его как зеницу ока, он нужен для авторизации. Второй ключ (bddt2.pub) раздаётся всем удалённым серверам, к которым ты хочешь получать доступ без ввода пароля.
Осталось выполнить ещё одну команду, а именно передать ключ на удалённый сервер, на который ты хочешь попасть по ключу.
- Где .ssh/bddt2.pub - путь к публичной части ключа
- Где USERNAME - это имя пользователя, через которое ты хочешь попасть на сервер, обычно это root, если никаких других пользователей ещё не создавалось.
- Где SERVER- это адрес удалённого сервера. Это может быть как IPv4, так и доменное имя.
Мы закончили. После этого, чтобы войти на сервер, используй данную команду:
Устанавливаем необходимые пакеты
Теперь время для Ctrl-C, Ctrl-V. Сейчас будет немного команд, которые установят на ваш сервер необходимые пакеты:
Теперь давай поговорим о том, для чего я всё это установил, и что сделала каждая из этих команд:
- apt-get update - всегда выполняй её первой, при установке любого пакета. Она синхронизирует индекс пакетов приложений и обновляет все зависимости, при необходимости.
- apt-get upgrade - устанавливает самые последние версии установленных пакетов на системе.
- apt-get install gettext libgettextpo-dev - она устанавливает зависимости необходимые для генерации переводов для твоих сайтов (которые используют утилиту gettext)
- apt-get install pkg-config default-libmysqlclient-dev build-essential - необходимые зависимости для работы с базами данных на MySQL.
- apt-get install nginx - для запуска веб-сервера
- apt-get install gunicorn - для переадресации запросов от nginx-сервера к нашему django-приложению
- apt-get install python3-dev python3.12-venv - для возможности создания виртуального окружения при работе python-приложений
Мой "не необходимый" пакет - это selenium. Чтобы мои функциональные тесты отработали, мне он необходим. И чтобы он работал, ему потребуется браузер Firefox, который мы и установим как .deb пакет. О бой, это то ещё приключение trueヽ(°〇°)ノ. Всех интересующихся приглашаю посетить официальный сайт мозилы и выполнить одну команду за другой.
В дополнение к firefox, потребуется ещё установить geckodriver. Версии последних релизов можно найти здесь: https://github.com/mozilla/geckodriver/releases . И теперь, команда для установки этого geckodriver:
Скачав (wget) и разархивировав geckodriver (tar -xzvf), мы после поместили его в /usr/local/bin/ директорию, чтобы у всех приложений был доступ к драйверу.
Создаём пользователя
Этот шаг обязателен и не думай делать сайт на root-правах. Сейчас необходимо будет создать пользователя с root привилегиями и домашней директорией.
Первая команда создаст пользователя по имени "site", создаст для него домашнюю директорию (флаг -m) и установит командную оболочку по умолчанию т.е. bash. Вторая команда задаст пароль для нового пользователя. Третья добавит пользователя "site" в sudo группу, которая способна выполнять все команды, только с использованием команды sudo.
Перенос проекта
База для нашего сервера готова, теперь давай займёмся файлами самого сайта. Я собираюсь создать простую файловую структуру, где при помощи git получу файлы своего проекта и скопирую их в source директорию. А так же, создам виртуальное окружение:
После выполнения всех этих команд, у тебя должна будет получиться следующая структура проекта:
- bddt2.space
<-Ты тут - venv
- source
Теперь, активируем виртуальное окружение и установим необходимые пакеты из source/requirements.txt:
Здесь не должно возникнуть ни каких проблем, но если всё таки возникли прочитайте внимательно логи ошибок. Зачастую, это просто не установленные зависимости на сервере, которые легко исправить при помощи пакетного менеджера apt.
Давай попробуем запустить установленное Django-приложение (предварительно зайдя в директорию с файлом manage.py:
Настройка базы данных mysql (опционально, хотя не очень)
Тебе выдаст ошибку, что файл settings.json не был найден. Это файл конфигурации, который я использую как прокси, вместо того чтобы писать непосредственно в settings.py. Сделал я это с той целью, чтобы можно было безопасно добавлять файл settings.py в git репозиторий и для упрощения развёртывания.
Вот пример такого файла(settings.json), создай его в source/Website директории:
Как ты видишь, я уже использую MySQL в качестве базы данных. Что нужно знать для подключения к базе данных из VPS:
- Во-первых нужно знать какой бекенд подключать - django.db.backends.mysql
- Во-вторых имя базы данных- bddt2_bd
- Во-вторых имя пользователя - bddt2_user
- В-третьих, пароль от базы данных - aD9bN5oV3pjD7qJ9
- В-четвёртых, имя хоста базы данных - 79.174.89.21
- И в пятых, порт подключения - он всегда один и тот же - 18320
Все эти данные можно получить при создании своей базы данных, процесс которого я описал в соответствующей главе.
Как я переношу, данные из settings.json в Website/settings.py? В файле settings.py я открываю файл settings.json и читаю от туда данные, вот так:
Использую JSON-формат, ибо просто очень удобно с ним работать через Python.
Заканчиваем перенос проекта
Уже, кстати, можно запустить тесты и посмотреть, что работает, а что нет. Всё должно отработать:

Итак, мы успешно закинули наш сайт на сервер и даже прошли все тесты. А это значит, что пора настроить nginx, после чего свяжем наш сайт с nginx веб-сервером через gunicorn.
Настраиваем Nginx
Вместе с файлами проекта, ты ещё получишь дефолтные файлы конфигурации для настройки nginx - nginx-server-http_only.conf, nginx-server-https_301.conf, nginx-server-https.conf.
Супер быстрая настройка Nginx (очень опционально)
Дальше я собираюсь подробно описать, для чего используется каждый файл, как запускать и перезапускать nginx, плюс как добавлять сайты на nginx. Если тебе это интересно, то милости прошу, но если нет ты можешь воспользоваться скриптом server-setup.sh, который я оставил в репозитории.
Чтобы им воспользоваться, введи:
- Где YOUR_DESIRED_DOMAIN - это желаемый домен
- Где on_https - это флаг, который говорит настроить редирект на HTTPS протокол
Этот скрипт создаст соответствующие файлы конфигураций и будет перезагружен.
Продолжаем настраивать Nginx
Ну а если всё-таки интересны детали и процесс, давай продолжим. Пока открой файл nginx-server-http_only.conf, ты увидишь следующую конфигурацию для нашего сайта:
- В этой конфигурации мы настраиваем порт на котором мы будем слушать входящие запросы.
- Имя для нашего сервера (доменное имя). В моём случае это должно быть bddt2.space.
- Папки, которые этот сервер будет обслуживать. Как минимум нужно настроить корневой каталог "/". Но этим всё не ограничивается, на моём сайте используется различная статика в виде картинок и иконок. Плюс медиа файлы, которые загружаются непосредственно пользователем.
Итак, финальная версия этой конфигурации будет выглядеть вот так:
Чтобы не забыть, давай сразу создадим директории media и static в ~/bddt2.space директории и мягкие ссылки на них. Мягкие ссылки на них создаются с тем, чтобы предоставить серверу доступ к ним.
Все необходимые директории были созданны и теперь мы готовы создать мягкие ссылки, на эти директории:
Теперь у проекта следующая структура:
- bddt2.space
- venv
- media
- static
- source
- Website
- Backend
- Frontend
- Website
- media -> ../../media
- static -> ../../static
- manage.py
- settings.json
- deploy.sh
- server-setup.sh
- requirements.txt
- gunicorn.service
- nginx-server-http_only.conf
- nginx-server-on_httsp-301.conf
- nginx-server-on_https.conf
Теперь, любой файл который будет создан в директории ~/bddt2.space/source/Website/static или ~/bddt2.space/source/Website/media будет доступен и в директориях ~/bddt2.space/static и ~/bddt2.space/media.
Чтобы это проверить, можешь запустить команду collectstatic и убедиться что все файлы, хоть и были скопированы в ~/bddt2/source/Website/static, так же доступны и в ~/bddt2.space/static.
Решаем проблему с 403 ошибкой - запрещено (опционально, надеюсь)
Ещё одна, очень часто возникающая проблема, это то что сервер может возвращать 403 ответ на запрос какого-нибудь статического файла. Зачастую это связано с тем что у пользователя www-data, нет разрешения на чтение определённых файлов. В файле настройки nginx указан пользователь от лица которого и запускается веб-сервер.
Чтобы это исправить есть три способа:
- Заменить пользователя в файле /etc/nginx/nginx.conf
- Дать доступ всем к чтению файлов
- Добавить пользователя www-data в группу пользователя, который запускает приложение.
Я опишу 3-й ибо это, на мой взгляд самый простой и правильный способ. И нужно всего лишь выполнить одну команду:
- site - имя группы к которому хотите добавить пользователя (оно будет совпадать с именем пользователя)
- www-data - имя пользователя, которого хотите присоединить к группе.
Теперь вся статика, и все медиа файлы на сайте должны быть доступны.
Заканчиваем настройку Nginx
Давай закончим настраивать веб-сервер и скопируем созданный файл конфигурации в /etc/nginx/sites-available:
Теперь сделаем то же самое что и с директориями static и media, создадим мягкую ссылку на этот файл конфигурации. Но сначала перейди в директорию где должна быть эта ссылка:
Перезапустим nginx-службу при помощи systemctl, чтобы изменения вошли в силу:
Я думаю, сейчас стоит попробовать посетить наш сайт - bddt2.space.

И да, ты должен увидеть что-то вроде этого. Почему так происходит, что за "Плохой шлюз"? А дело всё в одной строке, в файле конфигурации сайта /etc/nginx/sites-available/staging-nginx-server.conf.
По факту, nginx-сервер перенаправил мой GET-запрос по указанному сокету, но к нему ещё ничего не подключено. Вот на этом моменте в роль вступает gunicorn.
Настраиваем Gunicorn
Почти готовый файл конфигурации, находится там же где и файл конфигурации nginx-сервера - ~/bddt2.space/source/gunicorn.service. Это файл описывающий работу linux-демона, вот его содержимое:
Данный сервис(демон), запущенный пользователем site и с его привилегиями, будет перезагружаться каждый раз при возникновении какой-либо ошибки (Restart=on-failure). Работать данный демон будет в директории указанной в WorkingDirectory. А делать он будет то, что указано в ExecStart, то есть запускать gunicorn сервер.
При запуске gunicorn мы так же указали к какому сокету подключаться и куда перенаправлять запросы - в наше Django-приложение.
Создай такой же файл в /etc/systemd/system/ и отредактируй вставив своего пользователя, свой домен и свой сокет. Теперь запустим службу и сделаем так, чтобы она запускалась на сервере при загрузке.
Теперь всё будет работать. Мы создали специальный сервис, который запускает gunicorn-сервер при старте, а он в свою очередь запускает наше django-приложение. Обновив вкладку, ты должен будешь увидеть следующее:

На этом процесс развёртывания Djanog-сайта на VPS от reg.ru завершён. Рекомендую ещё прочитать следующую главу о том как поместить данный сайт на новый протокол HTTPS.
Переходим на HTTPS (опционально, хотя не очень)
Вообще, изначально, я думал, что есть какой-то способ получить(переместить) сгенерированный сертификат от Beget на VPS. Но я такого способа не нашёл.
Для того, чтобы поместить наш сайт на HTTPS протокол, потребуется получить специальный сертификат. Его мы получим у LetsEncrypt. Он бесплатный, но что более классно, всё можно сделать через командную строку, а значит автоматизировать. Смотри, для того чтобы, настроить nginx веб-сервер под https, потребуется сертификат и ключ к нему.
Команда LetsEncrypt, сделала специальную утилиту, которая очень крутая в плане поддерживаемых стеков технологий для сертификации. Вот, например страница для генерации, подписи и издания сертификатов для сайтов на nginx и использующий pip. Просто чума) И не нужно этой мозгоебли с самоподписанными сертификатами, которым никто не доверяет, и как результат, никто не заходит на сайт.
Активируем виртуальное окружение и установим программу:
Теперь генерируем и подписываем сертификаты:
Данная команда сгенерирует и подпишет сертификаты, которые расположит в /etc/letsencrypt/live/bddt2.space. Ты увидишь вот такой вот интерактивный промпт:

- Просит ввести почту
- Согласись на продажу своей души и души своего сайта)
- Регистрация, по желанию
- Выбор доменов(поддоменов) для который будет действовать данный сертификат. Если просто нажать ENTER, сертификат будет применён ко всем.
- Путь до сертификата (для настройки nginx)
- Путь до ключа (для настройки nginx)
Можно так же задать cron-задачу на обновление сертификата, каждый месяц:
Осталось только поменять конфигурации в sites-available, делается это так:
Отличие от предыдущей конфигурации состоит в том, что мы поменяли порт и добавили ssl_certificate и ssl_certificate_key. Пути для которых вам скажет certbot. Вот собственно и всё, по тому как добавить https на ваш сайт.
Но ты мог заметить, что при попытке получить свой сайт через обычный http, уже не получиться. Нужно будет сделать отдельную конфигурацию для 80 порта и сделать 301 редирект на https версию. Это считается хорошей практикой. Для этого создайте ещё один файл конфигурации в /etc/nginx/sites-available, например http_301_redirect-bddt2.space, и создайте файл со следующей конфигурацией:
Где HOST_PLACE_SETUP, это домен вашего сайта, например bddt2.space. Данная конфигурация делает 301 редирект с любых страниц с протоколом http на страницы с протоколом https.
Сравнение запуска сайта через Хостинг и через VPS
| Возможность тестирования | Без ограничений | Без ограничений |
| Кастомная структура проекта | Ограничена | Без ограничений |
| Автоматизация деплоя, настроек | Ограничена | Без ограничений |
| WSGI сервер | Phusion Passenger | Без ограничений |
| Веб сервер | Apache2 | Без ограничений |
| Переход на HTTPS | Почти незаметно | Сложно |
| Настройка базы данных | Легко | Сложно |
| Подключение домена | Почти незаметно | Сложно |
| Цена | Дешево | Дороже |
| Показатели | Reg.ru Hosting | Reg.ru VPS |
|---|
Честно скажу, я бы разворачивал сайты на виртуальном хостинге, чем самолично бы это делал на VPS. Но ограничения в версиях используемого питона, ещё в невозможности использовать другие БД, сильно меня отталкивают.
Заключение
И вот очередной хостинг-провайдер покорён и изучен. Теперь ты знаешь, как можно размещать сайты на reg.ru. По моему опыту скажу, что разместить сайт на reg.ru сложнее чем на том же beget. Уж больно очень много подводных камней и не очевидностей. Надеюсь я разобрал всех их и показал приемлемые способы их решения и обхода.
А ещё я надеюсь, что данная статья помогла тебе разобраться с тем, как и где разворачивать твой сайт написанный на Django и на твой благой комментарий и тем, что ты можешь захотеть поделиться этой статьёй с другом или подругой, тоже надеюсь. В любом случае до встречи в следующей статье (⌒‿⌒)