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.