Django est un framework web Python puissant et efficace qui favorise le développement rapide d’applications sécurisées et maintenables. Combiné à PostgreSQL pour la gestion de base de données, Nginx comme serveur web et Gunicorn comme serveur d’application WSGI, il constitue une pile technologique robuste pour déployer des applications web professionnelles. Ce guide détaillé vous expliquera comment configurer Django avec PostgreSQL, Nginx et Gunicorn sur Rocky Linux 9, en fournissant des instructions précises et faciles à comprendre pour les débutants, tout en étant assez détaillé pour les utilisateurs plus avancés.
Prérequis
- Un serveur avec Rocky Linux 9 installé.
- Accès root ou un utilisateur avec des privilèges sudo.
Étape 1 : Installation des composants nécessaires
- Installation de PostgreSQL :
sudo dnf install postgresql postgresql-server -y
sudo /usr/bin/postgresql-setup --initdb
sudo systemctl enable --now postgresql
- Création d’une base de données et d’un utilisateur PostgreSQL :
sudo su - postgres
psql
CREATE DATABASE myproject;
CREATE USER myprojectuser WITH PASSWORD 'password';
ALTER ROLE myprojectuser SET client_encoding TO 'utf8';
ALTER ROLE myprojectuser SET default_transaction_isolation TO 'read committed';
ALTER ROLE myprojectuser SET timezone TO 'UTC';
GRANT ALL PRIVILEGES ON DATABASE myproject TO myprojectuser;
\q
exit
Remplacez myproject
, myprojectuser
et password
par vos propres valeurs.
- Installation de Python, pip et autres outils nécessaires :
sudo dnf install python3-pip python3-devel gcc nginx -y
- Installation de Django et Gunicorn via pip :
pip3 install django gunicorn psycopg2-binary
Étape 2 : Configuration de Django
- Créez un projet Django :
django-admin startproject myproject /var/www/myproject
- Configurez les paramètres de Django pour utiliser PostgreSQL :
Éditez /var/www/myproject/myproject/settings.py
:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'myproject',
'USER': 'myprojectuser',
'PASSWORD': 'password',
'HOST': 'localhost',
'PORT': '',
}
}
- Migrations initiales de la base de données :
cd /var/www/myproject
python3 manage.py migrate
- Collecte des fichiers statiques :
python3 manage.py collectstatic
Répondez yes
lorsque le système vous le demande.
Étape 3 : Configuration de Gunicorn
- Testez Gunicorn :
cd /var/www/myproject
gunicorn --bind 0.0.0.0:8000 myproject.wsgi:application
- Créez un fichier de service systemd pour Gunicorn :
sudo nano /etc/systemd/system/gunicorn.service
Ajoutez le contenu suivant :
[Unit]
Description=gunicorn daemon
After=network.target
[Service]
User=root
Group=nginx
WorkingDirectory=/var/www/myproject
ExecStart=/usr/local/bin/gunicorn --workers 3 --bind unix:/var/www/myproject/myproject.sock myproject.wsgi:application
[Install]
WantedBy=multi-user.target
- Démarrez et activez Gunicorn :
sudo systemctl start gunicorn
sudo systemctl enable gunicorn
Étape 4 : Configuration de Nginx pour servir le projet Django
- Configurez Nginx :
sudo nano /etc/nginx/conf.d/myproject.conf
Ajoutez le contenu suivant :
server {
listen 80;
server_name server_domain_or_IP;
location =https://shape-host.b-cdn.net/favicon.ico?x32662 { access_log off; log_not_found off; }
location /static/ {
root /var/www/myproject;
}
location / {
include proxy_params;
proxy_pass http://unix:/var/www/myproject/myproject.sock;
}
}
Remplacez server_domain_or_IP
par votre domaine ou adresse IP.
- Redémarrez Nginx :
sudo systemctl restart nginx
Pour les développeurs et entreprises qui recherchent une solution d’hébergement puissante pour leurs applications Django, Shape.host offre des services Cloud VPS optimisés pour les applications web sur Rocky Linux 9. Nos VPS Linux SSD offrent les performances et la sécurité nécessaires pour gérer des applications Django avec PostgreSQL, Nginx et Gunicorn, assurant une disponibilité et une fiabilité maximales.