Для запуску Django сервера можна використовувати будь-який веб-сервер з підтримкою WSGI. У даній статті ми крок за кроком розберемо процес налаштування веб-сервера для Django з використанням nginx і uWSGI. Ті ж принципи можна застосувати і при використанні іншого веб-сервера.
Кроки для запуску веб-сервера для хостингу Django:
- придбати сервер
- Встановити системні пакети
- Підготувати віртуальне оточення
- Створити каталог і залити проект
- Встановити необхідні залежності
- Налаштувати веб-сервер і uWSGI
Тут же зібрані тільки необхідні дії для запуску Django проекту на порожньому Ubuntu сервері з використанням uWSGI.
Вибір сервера для хостингу сайту
Придбання сервера зараз не важко. Для хостингу простого сайту підійде будь-який віртуальний сервер (VPS), для більш складних можуть знадобиться власні сервера.
У цій статті розглянуто варіант настройки сервера з операційною системою Ubuntu,
Змініть системні пакети
На початку потрібно оновити встановлені на сервері системні пакети. В Ubuntu для цього потрібно виконати дві команди:
Тепер можна встановити необхідні для настройки сервера пакети
Створіть каталог і завантажте код проекту
Якщо ваш сервер використовується для хостингу декількох сайтів, то краще виділити окремий каталог для кожного проекту. Я використовую каталог / data, в якому будуть знаходиться каталоги проектів.
Завантаження коду проекту на сервер
Якщо ваш проект в системі контролю версій GIT - це ідеальний варіант - то досить виконати git clone. Я використовую для зберігання вихідного коду проекту Bitbucket:
Якщо програмний код у вас у вигляді архіву файлів, то завантажте його на сервер за допомогою scp. Під WIndows можна використовувати програму WinSCP для підключення до Ubuntu сервера і завантаження файлів.
Надалі передбачається наступна структура:
Підготувати віртуальне оточення
Спершу створимо каталог, в якому буде знаходиться віртуальне оточення:
Тепер створимо віртуальне оточення командою virtualenv mysite:
Тепер в каталозі venv з'явився каталог mysite, в якому зберігатимуться версія Python і всі встановлені в віртуальне оточення програми.
Для активації віртуального оточення потрібно виконати команду:
Після цього всі Python додатки будуть встановлюватися всередину віртуального оточення, і не будуть конфліктувати з системними версіями.
Якщо ваш сервер використовується для хостингу тільки одного сайту, то можна обійтися без створення віртуального оточення.
Щоб деактивувати віртуальне оточення і працювати з системними бібліотеками, виконайте команду
Встановити необхідні залежності
Після активації віртуального оточення можна встановити додатки, які необхідні для запуску і роботи сайту. Як правило їх список наведено в файлі requiments.txt в кореневому каталозі проекту.
Для установки використовуйте
або встановіть додатки по одному:
Налаштування NGINX і uWSGI
Але для роботи на хостингу потрібно більш серйозне рішення. Nginx - можливо кращий веб-сервер на момент написання статті, вже встановлено. Також потрібно встановити uWSGI. Перед установкою деактивуйте віртуальне оточення, щоб пакет був встановлений в системні каталоги і виконайте:
Налаштування вашого сайту в nginx
Створіть каталог / data / mysite / conf для зберігання файлів конфігурації і розмістіть в ньому файл mysite_nginx.conf такого змісту:
Потім запит буде переданий для подальшої обробки Python програмі через uWSGI, використовуючи файл-сокет /data/mysite/mysite.sock.
Щоб nginx використовував новий файл конфігурації, додайте посилання на нього в каталог / etc / nginx / sites-enabled /
Тепер потрібно перезавантажити nginx командою
Якщо картинка відобразиться, значить nginx налаштований коректно.
Налаштування uWSGI
Створіть в каталозі / data / mysite / conf файл `mysite_uwsgi.ini`:
Щоб uWSGI запускався при старті сервера, додайте в файл /etc/rc.local рядок