Pendant que j'étudiais, je ne comprenais pas les paramètres de NGINX et de gunicron après avoir déployé Django sur un hôte distant, alors j'ai pris une note pour moi-même.
Un serveur Web (NGINX) gère des traitements légers tels que le déploiement d'une application créée avec Django sur le cloud et l'affichage de fichiers statiques, et un serveur AP (gunicron) gère des traitements lourds tels que le traitement dynamique avec Django. Je veux le faire.
En résumé, l'image suivante
Pour réaliser ce qui précède, vous devez faire ce qui suit (en supposant que l'application Django est déjà déployée sur le serveur)
Ajoutez le fichier de paramétrage du site Web (application Django dans ce cas) appelé par NGINX dans "/ etc / nginx / sites-available". Cela permettra à NGINX d'appeler le site.
/etc/nginx/sites-Ajouter un fichier à disponible
cd /etc/nginx/sites-available
sudo vi djangapp
NGINX appelle Django selon les paramètres décrits dans cette "application djang". Ensuite, les informations sont décrites dans le fichier de paramètres créé. Cette fois, NGINX veut faire les deux choses suivantes.
Le contenu du fichier de configuration ressemble à ceci
etc/nginx/sites-available/djangapp
server {
#Port par lequel les demandes au site Web que vous définissez
listen 80;
#Adresse IP ou nom de domaine du site Web
server_name xx.xx.xx.xxx;
#Un sort pour éviter l'erreur que le Fabicon ne peut pas être trouvé
location = /favicon.ico {access_log off; log_not_found off;}
###Ci-dessous, la correspondance entre l'URL de la requête et le chemin sur NGINX est définie.
#Définissez le chemin du fichier statique Django
location /static/ {
root /home/ubuntu/djangapp;
}
#Définissez le chemin pour afficher le CSS de la page administrateur
location /static/admin {
root /home/ubuntu/venv/lib/python3.6/site-packages/django/contrib/admin/static/admin;
}
#Définissez le chemin d'accès au socket unix pour envoyer la requête à la page Web
location / {
# 「/etc/nginx/proxy_Les paramètres proxy sont décrits dans "paramètres"
include proxy_params;
# djangapp.J'envoie le résultat de la demande à chaussette
proxy_pass http://unix:/home/ubuntu/djangapp/djangapp.sock;
}
}
Créez un lien symbolique dans "site-enabled" pour indiquer que le "sites-available / djangapp" créé précédemment est "enabled". Si vous souhaitez vous déconnecter temporairement, supprimez simplement ce lien symbolique
Créer un lien symbolique
sudo ln -s /etc/nginx/sites-available/djangapp /etc/nginx/sites-enaled
Vous venez de créer un lien symbolique appelé sites-enabled / djangapp-> sites-available / djangapp. Confirmé pour le moment.
Confirmation du lien symbolique
(venv) ubuntu@ip-172-31-45-165:/etc/nginx/sites-available$ ls -la /etc/nginx/sites-enabled/
total 8
drwxr-xr-x 2 root root 4096 Apr 29 13:26 .
drwxr-xr-x 8 root root 4096 Apr 29 13:27 ..
lrwxrwxrwx 1 root root 34 Apr 29 06:54 default -> /etc/nginx/sites-available/default
#C'est un lien symbolique
lrwxrwxrwx 1 root root 36 Apr 29 13:26 djangapp -> /etc/nginx/sites-available/djangapp
Tout d'abord, testons si NGINX fonctionne correctement
Exécution de test nginx
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Confirmez que cela fonctionne sans problème. Puis, divers redémarrages
Redémarrez NGINX
sudo systemctl restart nginx
Redémarrer gunicorn
sudo systemctl restart gunicorn
Après cela, connectez-vous à l'URL
Recommended Posts