Како поставити Django са Postgres, Nginx и Gunicorn на Ubuntu-у

Како поставити Django са Postgres, Nginx и Gunicorn на Ubuntu-у

Увод

Django је популаран веб фрејмворк у Python-у који пружа свеобухватан скуп алата за брз развој и одржавање веб апликација. Заједно са Postgres-ом, моћним релационим системом за управљање базама података, Nginx, веб сервером са високим перформансама, и Gunicorn, HTTP сервером заснованим на WSGI-ју, Django може створити робустан и ефикасан стек за хостовање веб апликација. Овај водич корак по корак ће вас провести кроз процес инсталирања и конфигурисања Django-а са Postgres-ом, Nginx-ом и Gunicorn-ом на Ubuntu 20.04 LTS серверу.

Инсталација софтвера

1. Ажурирајте вашу систему

Започните ажурирањем кеша пакетног менаџера и надградњом инсталираних пакета:


sudo apt update
sudo apt upgrade

2. Инсталирајте Python 3 и PIP

Django захтева Python 3 и PIP, менаџер пакета за Python. Инсталирајте их користећи следеће команде:


sudo apt install python3 python3-pip

3. Инсталирајте виртуелно окружење

Виртуелна окружења изолују Python окружења како би спречила конфликте верзија и зависности. Инсталирајте виртуелно окружење користећи следећу команду:


sudo apt install python3-venv

4. Инсталирајте Django

Сада инсталирајте Django у ваше виртуелно окружење:


python3 -m venv my_django_env
source my_django_env/bin/activate
pip install Django

5. Инсталирајте Postgres


sudo apt install postgresql postgresql-contrib

6. Инсталирајте Nginx


sudo apt install nginx

7. Инсталирајте Gunicorn


pip install gunicorn

Конфигурација

1. Креирајте Django пројекат

Направите нови директоријум за свој Django пројекат и иницијализујте га:


mkdir my_django_project
cd my_django_project
django-admin startproject mysite

2. Конфигуришите Django поставке

Отворите датотеку settings.py у директоријуму mysite и додајте следеће поставке:

python
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'mydjangoapp',
'USER': 'django_user',
'PASSWORD': 'my_password',
'HOST': 'localhost',
'PORT': '5432',
}
}

Замените mydjangoapp, django_user, my_password са одговарајућим вредностима.

3. Креирајте Postgres базу података

Укључите се у Postgres користећи postgres корисника и креирајте базу података за Django апликацију:


sudo -u postgres psql
CREATE DATABASE mydjangoapp;
CREATE USER django_user WITH PASSWORD 'my_password';
GRANT ALL PRIVILEGES ON DATABASE mydjangoapp TO django_user;
\q

4. Покрените Django миграције

Миграције креирају табеле и структуре потребне за вашу Django апликацију:


python manage.py migrate

5. Конфигуришите Nginx

Отворите датотеку /etc/nginx/sites-available/mysite и додајте следећу конфигурацију:


server {
listen 80;
server_name mysite.example.com;

location / {
proxy_pass http://127.0.0.1:8000;
}
}

Замените mysite.example.com са именом домена или IP адресом вашег сервера.

6. Конфигуришите Gunicorn

Креирајте датотеку mysite.conf у директоријуму са конфигурационим датотекама Gunicorn-а и додајте следећу конфигурацију:


[uwsgi]
socket = 127.0.0.1:8000
protocol = http
num-processes = 4
enable-threads = true
wsgi-file = mysite/wsgi.py

7. Повежите Nginx са Gunicorn

Отворите датотеку /etc/nginx/nginx.conf и додајте следећи блок:


upstream django_app {
server 127.0.0.1:8000;
}

Затим повежите Nginx са Gunicorn додавањем следећег блока у датотеку mysite конфигурације:


location / {
proxy_pass http://django_app;
}

Покретање апликације

1. Стартујте Postgres


sudo systemctl start postgresql

2. Стартујте Gunicorn


gunicorn --config mysite.conf mysite.wsgi

3. Стартујте Nginx


sudo systemctl start nginx

4. Проверите да ли апликација ради

Приступите својој апликацији у претраживачу на http://mysite.example.com. Ако видите Django добродошлицу, ваша апликација ради исправно.

Закључак

Инсталирањем и конфигурисањем Django-а са Postgres-ом, Nginx-ом и Gunicorn-ом на Ubuntu 20.04 LTS серверу, успешно сте поставили робустан и ефикасан стек за хостовање веб апликација. Овај водич вас је провео кроз детаљне кораке за сваку компоненту, од инсталације до конфигурације. Сада можете развијати, тестирати и распоредити своје Django апликације брзо и лако на свом Ubuntu серверу.

Често постављана питања (FAQs)

1. Које су предности коришћења Postgres-а са Django-ом?
Postgres је релациони систем за управљање базама података са високим перформансама, поузданошћу и подршком за напредне функције попут ACID трансакција и упита заснованих на индексима.

2. Како ажурирати Django верзију?
За ажурирање Django-а, прво активирајте ваше виртуелно окружење и затим покрените следећу команду: pip install Django --upgrade.

3. Како поставити Django апликацију на продукцијском серверу?
Користите прокси сервер, попут Nginx-а или Apache-а, испред Django апликације за побољшане перформансе, безбедност и могућности скалирања.

4. Како надоградити Django пројекат на новију верзију?
Покрените django-admin upgrade команду из директоријума вашег Django пројекта да проверите да ли постоје миграције за надградњу пројекта.

5. Како конфигурисати SSL/TLS за Nginx на Ubuntu-у?
Да бисте омогућили SSL/TLS за Nginx, потребно је да креирате SSL сертификат и кључ, а затим их додате у конфигурацију Nginx-а.

6. Како имплементирати к кеширање у Django-у?
Можете користи