Как развернуть django сайт на хостинг от reg.ru. Полная инструкция
16.03.2025
15.04.2025
3 минуты
333
0
0
1
0
Вступление
В этой статье, которая будет финальной для серии статей про парсера поисковой выдачи. Я покажу как развернуть сайт на Django, фронтенд которого написан на React, на серверах от хостинг-провайдера reg.ru. Начну с того, что ты уже должен быть зарегистрирован и имеешь оплаченный хостинг и доменное имя. Всё, конечно же, от хостинг-провайдера, reg.ru. У них, хочу заметить, очень красивое оформление админки и личного кабинета.
Настраиваем хостинг
После приобретения услуги хостинга и доменного имени, с главной страницы нужно будет зайти в хостинг.

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

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

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

Хочу отметить, если твой django-сайт написан на версиях выше 4.2, то для тебя (ровно как и для меня) подойдёт только одна версия python, 3.10.1. Так же, если ты ещё покупал SSL-сертификат включи и его.
Мы закончили базовую настройку хостинга. И в отличие от хостинг-провайдера beget, нам не потребуется вручную скачивать и устанавливать необходимую версию python и openssl.
Развёртывание сайта
Развёртывание сайта всегда начинается с переноса его файлов. Их можно перенести двумя способами, или через панель управления, или используя scp-команду, через терминал. Здесь я рассмотрю только первый способ, ибо это тупо проще.
Сначала зайди в файловый менеджер, после чего нужно будет зайти в директорию под названием того доменного имени, которое ты купил. В моём случае это search-result-parser.site. Все такие директории находятся в www директории.

Загрузим архив с файлами сайта и распакуем его соответственно там же. Готовую версию сайта я тебе предоставляю. Там уже будет файл с зависимостями, скриптами и настройками. Только скачай его.
Настройка статических и медиа файлов
Для того чтобы сервер мог получить доступ к нашим файлам все они должны быть в корневой директории сайта, то есть в моём случае это /www/search-result-parser.site/. Надо будет поменять следующие строки в settings.py файле на:
Вот и всё.
Настройка базы данных
Чтобы получить минимально работающий сайт, нужно только настроить базу данных. SQLite конечно же не подходит для этих целей. Нужно перейти на ту базу данных, которая поддерживается самим сервером. В случае с reg.ru это MySQL.
Нужно будет заменить следующие строки в settings.py:
Но это ещё не всё. Конкретно сейчас нас интересуют следующие ключи в словаре:
- NAME - Имя базы данных
- USER - Имя пользователя базы данных
- PASSWORD - Пароль от базы данных
Все остальные значения остаются такими, какими я их указал. Как найти значения для них?
Заходим в базы данных на дашборде, создать базу данных. По умолчанию у тебя уже будет создана новая база данных. Можно использовать и её, но я покажу как создать свою.

Заполняем необходимые поля. Так же ты можешь создать отдельного пользователя для базы данных или использовать уже существующего.

Теперь и база данных успешно настроена для работы.
"Установка" сайта
Теперь займёмся установкой сайта, так сказать. Под установкой я подразумеваю, копирование всех статических файлов, создание миграций для базы данных и написание дополнительных скриптов прослоек между нашим сайтом и самим сервером.
В корневой директории сайта создай виртуальное окружение, активируй его и установи необходимые пакеты через pip:
Хочу отметить что, если тебе нужно использовать python3.10, то придётся прописывать полный путь до интерпретатора, ибо его нет в переменной окружения $PATH. Учти.
Теперь перенесём все статические файлы, создадим миграции для базы данных, а так же скомпилируем переводы.
Все статические файлы будут перемещены в /www/search-result-parser.site/ (Все медиа файлы тоже будут там же). Все необходимые таблицы так же будут созданы, ровно, как и файлы с переводами.
Последним и завершающим шагом в "установке" сайта будет создание passenger-wsgi.py скрипта с таким вот содержимым.
Где вместо sys.path.insert(0, ..., ты должен будешь указать путь до корневой папки своего django-сайта.
Где вместо sys.path.insert(1, ..., ты должен будешь указать свой путь до пакетов в виртуальном окружении, созданным ранее.
Перезапуск сервера
Теперь перезапусти сервер создав в корневой директории сайта, /www/search-result-parser.site/, файл .restart-app. Сервера работают таким образом, что каждую минуту проверяют хостинги на наличие вот такого файла и если он есть, перезапускают.
Заключение
Таким вот образом, ты теперь сам сможешь развернуть сайт написанный на django. Скажу сразу, в сравнении с хостинг-провайдером от beget, установка на reg.ru гораздо проще и дружелюбнее. И теперь мой сайт про парсинг поисковой выдачи доступен для всех вас. \^o^/
Комментарии
(1)
Отправить
Другое
Похожие статьи
Использованные термины
- VPS (Виртуальный частный сервер) ⟶ Это услуга суть которой заключается в том что предоставляется доступ к выделеному серверу на определённой машине. Таких выделенных серверов на одной машине может быть тысячи. Обычно управление таким сервером не отличается от управления обычным, физическим.
- Конструктор сайтов ⟶ Это приложение или веб сервис, с набором готовых решений и шаблонов, для создания сайтов.
- Хостинг ⟶ Это услуга по предоставлению места на сервере и выделению, определённой заранее мощности ,этого сервера, с тем условием что этот сервер имеет постоянный доступ в интернет.
- Виртуальное окружение ⟶ Это изолированная среда для выполнения программ, в которой можно устанавливать необходимые зависимости и библиотеки без влияния на систему в целом.
- Вебсайт ⟶ Это совокупность связанных между собой веб-страниц, доступных через интернет и имеющих одно общее доменное имя. Каждый веб-сайт может содержать текстовую информацию, изображения, видео и другие мультимедийные элементы. Веб-сайты могут выполнять различные функции, включая предоставление информации, общение, онлайн-торговлю и множество других взаимодействий.
Релевантные вопросы
- Чем ты занимался до того как стал вебмастером ? Я делал игры и писал свой собственный игровой движок. Игр сделал 5 и лишь одну выпустил в Play Store. А движок назывался **DI**. Я его забросил
- Почему, создавая сайт ты предпочёл django, а не конструкторы сайтов ? Довольно сложный вопрос. Наверное я люблю разбираться и копаться в сложных вещах, хотя вроде бы и не стоило. Тут похожая история с играми. Вместо того, чтобы делать игры на игровых движках, я делал свой собственный, **DI**. Ну, я просто не ищу простых путей ;)
- Назовите несколько способов сократить время загрузки веб-сайта? Вот несколько способов сократить время загрузки сайта: 1) Найдите решение для хостинга с оптимизированной производительностью. 2) Сжимайте изображения и другой визуальный контент. 3) Уменьшите перенаправление URL. 4) Размещайте файлы JavaScript и CSS во внешнем хранилище. 5) Инвестируйте в сеть доставки контента (CDN). 6) Удалите ненужные дополнения