Première étape.
sudo apt-get update
sudo apt-get upgrade
Mettre à jour d'abord. .
La méthode de déploiement grand public de Django : nginx+uwsgi+django
La deuxième étape consiste à installer nginx
sudo apt-get install nginx
Installer nginx, si vous devez installer la dernière version de nginx, vous devez télécharger le package de code source depuis le site officiel et le compiler manuellement.
La structure de fichier approximative de nginx.
1. Fichier de configuration :/etc/nginx
2. Programme :/usr/sbin/nginx
3. log - error.log
La troisième étape, installez uwsgi
sudo apt-get install python3-dev
sudo apt-get install python3- pip
sudo pip3 install uwsgi (Avant cette étape, vous pouvez modifier la source pip pour améliorer la vitesse de téléchargement. Créez pip.conf sous ~/.pip et écrivez
[global]
trusted-host = pypi.douban.com
index-url = )
uwsgi est un serveur web qui implémente le protocole WSGI, uwsgi, http En attente pour accord. La fonction de HttpUwsgiModule dans Nginx est d'échanger avec le serveur uWSGI.
Le processus général est : Client<==>nginx<==>uwsgi<==>Django. Les requêtes statiques sont gérées par Nginx lui-même. Les requêtes non statiques sont transmises à Django via uwsgi, qui est traité par Django pour compléter une requête WEB.
Créez un projet de test Django, django-admin startproject mysite, cd mysite, python manage.py startapp demo1.
La quatrième étape, tester uwsgi
Créez un nouveau fichier de test dans le répertoire mysite, nano test.py .
Écrire :
def application(env, start_response): start_response('200 OK', [('Content-Type','text/html')])return ["Hello World"]
Exécuter :
uwsgi --http :8001 --plugin python --wsgi-file test.py
Accès normal.
La cinquième étape consiste à tester que Django
python manage.py runserver 0.0.0.0:8002
a un accès normal.
Connectez Django et uwsgi.
uwsgi --http:8001 --plugin python --module mysite.wsgi
L'accès est normal.
La sixième étape consiste à configurer uwsgi
les supports d'uwsgi en commençant par une variété de fichiers de configuration. La méthode du fichier de configuration ini est utilisée ici.
Nouveau uwsgi : nano uwsgi.ini
# mysite_uwsgi.ini file[uwsgi] socket = 127.0.0.1:3400# Django-related settings # the django project directory (full path) chdir = /home/ubuntu/mysite # Django's wsgi filemodule = mysite.wsgi # process-related settings # master master = true# maximum number of worker processes processes = 2threads = 2max-requests = 6000# ... with appropriate permissions - may be neededchmod-socket = 664# clear environment on exit vacuum = true
Une erreur s'est produite lorsque accéder, invalid request block <span class="hljs-built_in">size: <span class="hljs-number">21573 (<span class="hljs-built_in">max <span class="hljs-number">4096)...skip</span></span></span></span>
.
La raison est que l'adresse URL dépasse 4096 caractères. La raison est que nous utilisons socket pour démarrer. Changez simplement le socket dans le fichier de configuration en http, ou modifiez la taille du tampon.
(Il est recommandé de ne faire aucune modification, changez-le simplement en http pendant les tests, et remettez-le en socket lors de la connexion à nginx)
daemonize = /home/ubuntu/mysite/uwsgi.log
Changez cela lors de son exécution officielle. Ajoutez ce code au fichier uwsgi.ini et le journal d'accès sera affiché dans uwsgi.log
À ce moment, Django peut déjà y accéder.
Étape 7, configurer nginx
Modifier le fichier de configuration par défaut de nginx/etc/nginx/sites-enabled/default
server { # the port your site will be served on listen 80; # the domain name it will serve forserver_name 127.0.0.1; # substitute your machine's IP address or FQDNcharset utf-8; # max upload size client_max_body_size 75M; # adjust to taste # Django media location /media { alias /home/ubuntu/mysite/media; # your Django project's media files - amend as required } location /static { alias /home/ubuntu/mysite/static; # your Django project's static files - amend as required } # Finally, send all non-media requests to the Django server. location / { include uwsgi_params; # the uwsgi_params file you installed uwsgi_pass 127.0.0.1:8001;#此处跟uwsgi配置文件保持一致 } }
N'oubliez pas de modifier la configuration uwsgi.ini pendant les tests.
Étape 8, exécutez
pour redémarrer nginx et exécutez uwsgi.
Terminé
Ça y est pour le moment, je vais continuer à ajouter des connaissances. à propos de nginx, django et uwsgi à l'avenir.
La plupart des configurations proviennent de la recherche Baidu, je ne publierai donc pas chaque source une par une. La vie est courte.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!