Как да настроите Django с Postgres, Nginx и Gunicorn на Debian 11

Как да настроите Django с Postgres, Nginx и Gunicorn на Debian 11

Въведение

Django е мощен фреймуърк за уеб приложения на Python, който прави разработването на сложни уеб приложения бързо и лесно. Postgres е една от най-популярните релационни бази данни с отворен код, която предлага надеждност, мащабируемост и множество функции. Nginx е високопроизводителен уеб сървър, който може да се използва за обработка на голям обем трафик, докато Gunicorn е уеб сървър на Python, който е оптимизиран за работа с Django приложения.

В това ръководство ще ви преведем през стъпките за инсталиране и конфигуриране на Django с Postgres, Nginx и Gunicorn на сървър Debian 11. Това е идеална конфигурация за мащабируеми и надеждни Django приложения.

Инсталиране на Postgres

1. Импортирайте официалния ключ на хранилището.

curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -

2. Добавете хранилището в източниците на списъка.

echo "deb http://apt.postgresql.org/pub/repos/apt stretch-pgdg main" | tee /etc/apt/sources.list.d/pgdg.list

3. Обновете списъка с пакети.

apt update

4. Инсталирайте Postgres.

apt install postgresql-12

5. Стартирайте Postgres и го активирайте за автоматично стартиране.

systemctl start postgresql
systemctl enable postgresql

6. Създайте база данни за Django приложението.

sudo -u postgres createdb mydjangoproject

Инсталиране на Django

1. Инсталирайте Python 3 и pip.

apt install python3 python3-pip

2. Създайте виртуална среда за Django.

python3 -m venv djangoenv
source djangoenv/bin/activate

3. Инсталирайте Django.

pip install django

Конфигуриране на Django

1. Създайте Django проект.

django-admin startproject mydjangoproject

2. Създайте приложение в Django проекта.

cd mydjangoproject
python3 manage.py startapp myapp

3. Редактирайте settings.py файла, за да добавите базата данни на Postgres.

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'mydjangoproject',
'USER': 'postgres',
'PASSWORD': 'паролата ви',
'HOST': 'localhost',
'PORT': '5432',
}
}

4. Синхронизирайте миграциите на базата данни.

python3 manage.py migrate

Инсталиране на Nginx

1. Инсталирайте Nginx.

apt install nginx

2. Стартирайте Nginx и го активирайте за автоматично стартиране.

systemctl start nginx
systemctl enable nginx

Конфигуриране на Nginx

1. Създайте конфигурационен файл на Nginx за Django приложението.

sudo nano /etc/nginx/sites-available/mydjangoproject

2. Поставете следното съдържание във файла:

server {
listen 80;
server_name your_domain.com;

location / {
proxy_pass http://localhost:8000;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

3. Активирайте конфигурационния файл.

ln -s /etc/nginx/sites-available/mydjangoproject /etc/nginx/sites-enabled/
systemctl restart nginx

Инсталиране на Gunicorn

1. Инсталирайте Gunicorn.

pip install gunicorn

Конфигуриране на Gunicorn

1. Създайте конфигурационен файл на Gunicorn за Django приложението.

sudo nano /etc/systemd/system/gunicorn.service

2. Поставете следното съдържание във файла:

[Unit]
Description=Gunicorn daemon
After=network.target

[Service]
User=www-data
Group=www-data
WorkingDirectory=/home/your_username/mydjangoproject
ExecStart=/home/your_username/djangoenv/bin/gunicorn --bind unix:/run/gunicorn.sock --workers 3 --timeout 600 mydjangoproject.wsgi:application

[Install]
WantedBy=multi-user.target

3. Заредете и стартирайте услугата Gunicorn.

systemctl daemon-reload
systemctl start gunicorn
systemctl enable gunicorn

Заключение

Честито! Успешно инсталирахте и конфигурирахте Django с Postgres, Nginx и Gunicorn на Debian 11. Сега имате стабилна и мащабируема среда за разработка и хостване на вашите Django приложения. Не забравяйте да следвате най-добрите практики за сигурност и да наблюдавате внимателно производителността на приложението си, за да осигурите най-доброто потребителско изживяване.

Често задавани въпроси (ЧЗВ)

1. Как да променя потребителското име и паролата за базата данни на Postgres?
– Редактирайте файла /etc/postgresql/12/main/postgresql.conf* и променете параметрите **user** и *password.

2. Как да създам друг администраторски потребител в Postgres?
– Влезте в Postgres като потребител postgres и изпълнете:

CREATE USER new_user WITH PASSWORD 'нова_парола';
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO new_user;

3. Как да променя порта по подразбиране за Django приложението?
– Редактирайте файла settings.py* на Django и променете параметъра *ALLOWED_HOSTS на списък със разрешени хостове.

4. Как да добавя повече работници към Gunicorn?
– Редактирайте конфигурационния файл на Gunicorn /etc/systemd/system/gunicorn.service* и увеличете параметъра *workers.

5. Как да активирам SSL/TLS в Nginx?
– Получете SSL сертификат и го поставете в директорията /etc/nginx/ssl и конфигурирайте го в конфигурационния файл на Nginx.

6. Как да наблюдавам производителността на Django приложението?
– Инсталирайте Django Debug Toolbar или използвайте инструменти за наблюдение като Datadog или Sentry.

7. Как да архивирам базата данни на Postgres?
– Използвайте командата pg_dump за създаване на архив на базата данни.

8. Как да актуализирам Django и свързаните му зависимости?
– Използвайте pip за актуализиране на Django и други пакети.

  Практически: Как да играете PS4 игри на вашия iPhone или iPad