Django Nginx+uwsgi Installation und Konfiguration

In den vorherigen Kapiteln haben wirpython manage.py runserververwendet, um den Server auszuführen. Dies ist nur für die Verwendung in einer Testumgebung geeignet.

Für einen offiziell veröffentlichten Dienst benötigen wir einen stabilen und kontinuierlichen Server, wie Apache, Nginx, lighttpd usw. In diesem Artikel wird Nginx als Beispiel verwendet.

Sie können auch direkt auf Folgendes verweisen:Python uwsgi Installation und Konfiguration


Grundlegende Entwicklungspakete installieren

Die Installationsschritte unter CentOS sind wie folgt:

yum groupinstall "Development tools"
yum install zlib-devel bzip2-devel pcre-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel

CentOS bringt Python 2.4.3 mit, aber wir können auch Python 2.7.5 installieren:

cd ~
wget http://python.org/ftp/python/2.7.5/Python-2.7.5.tar.bz2
tar xvf Python-2.7.5.tar.bz2
cd Python-2.7.5
./configure --prefix=/usr/local
make && make altinstall

Python-Paketverwaltung installieren

easy_install-Pakethttps://pypi.python.org/pypi/distribute

Installationsschritte:

cd ~
wget https://pypi.python.org/packages/source/d/distribute/distribute-0.6.49.tar.gz
tar xf distribute-0.6.49.tar.gz
cd distribute-0.6.49
python2.7 setup.py install
easy_install --version

pip-Paket:https://pypi.python.org/pypi/pip

Der Vorteil der Installation von pip besteht darin, dass Sie mit pip list und pip uninstall Python-Pakete verwalten können; easy_install bietet diese Funktion nicht, es hat nur uninstall.


uwsgi installieren

uwsgi:https://pypi.python.org/pypi/uWSGI

Detaillierte Erklärung der uwsgi-Parameter:http://uwsgi-docs.readthedocs.org/en/latest/Options.html

pip install uwsgi
uwsgi --version    # 查看 uwsgi 版本

Testen, ob uwsgi ordnungsgemäß funktioniert:

Eine neue Datei test.py mit folgendem Inhalt erstellen:

def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return "Hello World"

Führen Sie dann im Terminal aus:

uwsgi --http :8001 --wsgi-file test.py

Geben Sie http://127.0.0.1:8001 in Ihren Browser ein und prüfen Sie, ob "Hello World" ausgegeben wird. Wenn keine Ausgabe erfolgt, überprüfen Sie bitte Ihren Installationsprozess.


Django installieren

pip install django

Um zu testen, ob Django funktioniert, führen Sie aus:

django-admin.py startproject demosite
cd demosite
python2.7 manage.py runserver 0.0.0.0:8002

Geben Sie http://127.0.0.1:8002 im Browser ein, um zu prüfen, ob Django normal läuft.


Nginx installieren

Der Installationsbefehl lautet wie folgt:

cd ~
wget http://nginx.org/download/nginx-1.5.6.tar.gz
tar xf nginx-1.5.6.tar.gz
cd nginx-1.5.6
./configure --prefix=/usr/local/nginx-1.5.6 \
--with-http_stub_status_module \
--with-http_gzip_static_module
make && make install

Sie könnenNginx-Installation und -Konfigurationlesen, um mehr zu erfahren.


uwsgi-Konfiguration

uwsgi unterstützt viele Konfigurationsmethoden wie ini, xml usw. In diesem Text wird ini als Beispiel verwendet. Erstellen Sie im Verzeichnis /etc/ die Datei uwsgi9090.ini und fügen Sie die folgende Konfiguration hinzu:

[uwsgi]
socket = 127.0.0.1:9090
master = true         //主进程
vhost = true          //多站模式
no-site = true        //多站模式时不设置入口模块和文件
workers = 2           //子进程数
reload-mercy = 10     
vacuum = true         //退出、重启时清理文件
max-requests = 1000   
limit-as = 512
buffer-size = 30000
pidfile = /var/run/uwsgi9090.pid    //pid文件,用于下面的脚本启动、停止该进程
daemonize = /website/uwsgi9090.log

Nginx-Konfiguration

Suchen Sie das Nginx-Installationsverzeichnis (z. B. /usr/local/nginx/), öffnen Sie die Datei conf/nginx.conf und ändern Sie die Serverkonfiguration:

server {
        listen       80;
        server_name  localhost;
        
        location / {            
            include  uwsgi_params;
            uwsgi_pass  127.0.0.1:9090;              //必须和uwsgi中的设置一致
            uwsgi_param UWSGI_SCRIPT demosite.wsgi;  //入口文件,即wsgi.py相对于项目根目录的位置,“.”相当于一层目录
            uwsgi_param UWSGI_CHDIR /demosite;       //项目根目录
            index  index.html index.htm;
            client_max_body_size 35m;
        }
    }

Sie könnenNginx-Installation und -Konfigurationlesen, um mehr zu erfahren.

Nach Abschluss der Einrichtung im Terminal ausführen:

uwsgi --ini /etc/uwsgi9090.ini &
/usr/local/nginx/sbin/nginx

Geben Sie http://127.0.0.1 in Ihrem Browser ein, und Sie sehen Djangos "It work"-Seite.