Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der Website-Bereitstellung basierend auf dem Django-Framework

Detaillierte Erläuterung der Website-Bereitstellung basierend auf dem Django-Framework

高洛峰
高洛峰Original
2017-03-09 09:56:491598Durchsuche

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

Wenn wir zunächst eine Website http://www.example.com/ eingeben, übergeben wir zunächst die DNS-Analyse an die entsprechende IP-Adresse. Dies ermöglicht den Zugriff auf die IP. Daher besteht der erste Schritt, um anderen den Zugriff auf unser Projekt zu ermöglichen, darin, zwei Dinge zu haben: einen Domänennamen und eine öffentliche IP.

Der Erhalt eines Domainnamens ist ganz einfach: Registrieren Sie sich einfach und kaufen Sie einen. Anschließend müssen Sie den Domänennamen in Ihre öffentliche IP-Adresse auflösen. Die öffentliche IP kann in der Regel beim Kauf eines Cloud-Servers bezogen werden.
Nach diesem Schritt haben wir Folgendes erreicht: Anfrage-->DNS-->Server-IP, und unser ultimatives Ziel ist: Anfrage-->DNS-->Server-IP-->Blackbox- - >Projekt wsgi-Anwendung

2. Verwenden Sie Gunicorn, um das Projekt auszuführen

Hier verwenden wir Django, um das Projekt zu erstellen, wenn Ihr Projekt abgeschlossen ist. Wir müssen ein Dienstprogramm ausführen, das auf Anfragen lauscht, Anfragen empfängt und die entsprechende WSGI-Anwendung aufruft. Führen Sie beispielsweise python manage.py runserver 0.0.0.0:8000 aus. Runserver ist das wsgi-basierte Dienstprogramm, das mit Django zum Debuggen geliefert wird.

Wir erstellen ein Projekt auf dem Cloud-Server

django-admin.py startproject blog

wo 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()
Wir führen den folgenden Befehl unter dem Projekt aus

gunicorn wsgi:application

Die Standardbindung ist 127.0.0.1:8000. Sie können die spezifische Verwendung von gunicorn googeln alleine

Zu diesem Zeitpunkt können wir über den lokalen Port 8000 auf unsere Projektinhalte zugreifen. Implementiert: request-->DNS-->server ip-->black box-->127.0.0.1:8000-->project wsgi application

3.nginx empfängt externe Anfrage, intern Weiterleitung

Erstellen Sie im Ordner /etc/nginx/sites-available/ eine neue Datei blog und fügen Sie die folgenden einfachen Einstellungen hinzu

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;
    }
}
Aus dem Obigen können wir verstehen, dass Nginx After empfängt Nach Erhalt der Anfrage wird diese an den lokalen Port 8000 weitergeleitet, auf dem Gunicorn die entsprechende Anwendungsfunktion im Projekt entsprechend der Anfrage aufruft und das Ergebnis zurückgibt. > Es gibt viele spezifische Konfigurationen zu Nginx und Gunicorn, um mehr darüber zu erfahren.


4.Gunicorn sorgt dafür, dass das Projekt läuft.
Nginx ist für den Empfang von Anfragen verantwortlich und Weiterleitung von Anfragen zum Ausführen des Ports

, der zur Überwachung von Anfragen im Projekt verwendet wird. Er erfordert hauptsächlich einen Domänennamen und eine öffentliche IP-Adresse. Beides kann über einen Cloud-Server gelöst werden, daher ist es am besten, einen zu kaufen Cloud-Server und üben Sie es einfach




Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Website-Bereitstellung basierend auf dem Django-Framework. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn