Налаштування веб-сервера для django з nginx і uwsgi - як стати програмістом

Для запуску 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 рядок