Како поставити 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-у?
Можете користи