Maison > développement back-end > Tutoriel Python > Explication détaillée du déploiement de sites Web basé sur le framework Django

Explication détaillée du déploiement de sites Web basé sur le framework Django

高洛峰
Libérer: 2017-03-09 09:56:49
original
1672 Les gens l'ont consulté

对于刚入门的同学,当完成了项目代码,在本地localhost的调试没问题后,会遇到如何让项目上线的问题。
网上的资料过于繁杂,因此希望这篇能简单地为刚入门的同学解惑。
Copier après la connexion
1. Nom de domaine

Tout d'abord, lorsque nous entrons sur un site Web http://www.example.com/, transmettons d'abord l'analyse DNS au correspondant Adresse IP, cela permet l'accès à l'IP. Par conséquent, la première étape pour permettre aux autres d’accéder à notre projet est d’avoir deux choses, un nom de domaine et une IP publique.

Obtenir un nom de domaine est très simple, il suffit de l'enregistrer et d'en acheter un. Ensuite, il faut résoudre le nom de domaine en votre IP publique. L'adresse IP publique peut généralement être obtenue lors de l'achat d'un serveur cloud.
Après cette étape, nous avons atteint : request-->DNS-->server ip, et notre objectif ultime est : request-->DNS-->server ip-->black box- - >Application Project wsgi

2. Utilisez gunicorn pour exécuter le projet

Ici, nous utilisons Django pour construire le projet, lorsque votre projet est terminé. Nous devons exécuter un programme de service qui écoute les demandes, reçoit les demandes et appelle l'application wsgi correspondante. Par exemple, exécutez python manage.py runserver 0.0.0.0:8000 Runserver est le programme de service basé sur wsgi fourni avec Django pour le débogage.

Nous créons un projet sur le serveur cloud

django-admin.py startproject blog

où wsgi.py

import os
import sys
# 当使用virtualenv等隔离项目环境时,需要将项目的路径添加添加到查找路径中
path = os.getcwd()
if path not in sys.path:
    sys.path.append(path)

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "blog.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
Copier après la connexion
Nous exécutons la commande suivante sous le projet

gunicorn wsgi:application

La liaison par défaut est 127.0.0.1:8000. Vous pouvez rechercher sur Google l'utilisation spécifique de gunicorn. par vous-même

À ce stade, nous pouvons accéder au contenu de notre projet via le port local 8000. Implémenté : request-->DNS-->server ip-->black box-->127.0.0.1:8000-->project wsgi application

3.nginx reçoit une requête externe, interne transfert

Dans le dossier /etc/nginx/sites-available/, créez un nouveau fichier blog et ajoutez les paramètres simples suivants

server {
    listen 80;
    server_name  你的域名 你的公网ip(可选);
    access_log  /var/log/nginx/blog.log;
    location /static {
        #静态文件如js,css的存放目录
        root /project/blog;
    }
    location / {
        include proxy_params;
        # 从外部接收请求后转发到本地的8000端口
        proxy_pass http://127.0.0.1:8000;
    }
}
Copier après la connexion
De ce qui précède, nous pouvons comprendre que nginx reçoit après à la réception de la requête, elle est transmise au port local 8000 sur lequel gunicorn écoute. Gunicorn appelle la fonction d'application correspondante dans le projet en fonction de la requête et renvoie le résultat. > Il existe de nombreuses configurations spécifiques à propos de nginx et gunicorn. Vous pouvez également rechercher davantage sur Google pour un apprentissage approfondi


4 Résumé

gunicorn fait fonctionner le projet

nginx est responsable de la réception des demandes. et transférer les requêtes pour exécuter Le port

utilisé pour surveiller les requêtes dans le projet est déployé en ligne. Il nécessite principalement un nom de domaine et une adresse IP publique. Les deux peuvent être résolus via un serveur cloud, il est donc préférable d'en acheter simplement un. serveur cloud et pratiquez-le





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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal