Installation et configuration de Django Nginx+uwsgi

Dans les chapitres précédents, nous avons utilisépython manage.py runserverpour exécuter le serveur. Cela ne convient que pour une utilisation dans un environnement de test.

Pour un service publié officiellement, nous avons besoin d'un serveur stable et continu, comme Apache, Nginx, lighttpd, etc. Cet article utilisera Nginx comme exemple.

Vous pouvez également vous référer directement à :Installation et configuration de Python uwsgi


Installer les paquets de développement de base

Les étapes d'installation sur CentOS sont les suivantes :

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

CentOS est livré avec Python 2.4.3, mais nous pouvons également installer Python 2.7.5 :

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

Installer la gestion des paquets Python

paquet easy_installhttps://pypi.python.org/pypi/distribute

Étapes d'installation :

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

paquet pip :https://pypi.python.org/pypi/pip

L'avantage d'installer pip est que vous pouvez utiliser pip list et pip uninstall pour gérer les paquets Python ; easy_install n'a pas cette fonctionnalité, il ne possède que la commande uninstall.


Installer uwsgi

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

Explication détaillée des paramètres uwsgi :http://uwsgi-docs.readthedocs.org/en/latest/Options.html

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

Tester si uwsgi fonctionne correctement :

Créer un nouveau fichier test.py avec le contenu suivant :

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

Ensuite, exécutez dans le terminal :

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

Saisissez http://127.0.0.1:8001 dans votre navigateur et vérifiez si "Hello World" est affiché. S'il n'y a pas de sortie, veuillez vérifier votre processus d'installation.


Installer Django

pip install django

Pour tester si django fonctionne, exécutez :

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

Saisissez http://127.0.0.1:8002 dans le navigateur pour vérifier si Django fonctionne normalement.


Installer Nginx

La commande d'installation est la suivante :

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

Vous pouvez lireInstallation et configuration de NginxEn savoir plus.


Configuration de uwsgi

uwsgi prend en charge ini, xml et de nombreuses autres méthodes de configuration, ce document utilise ini comme exemple, Dans le répertoire /etc/, créez uwsgi9090.ini, ajoutez la configuration suivante à titre d'exemple :

[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

Configuration de Nginx

Trouvez le répertoire d'installation de nginx (par exemple, /usr/local/nginx/), ouvrez le fichier conf/nginx.conf et modifiez la configuration du serveur :

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;
        }
    }

Vous pouvez lireInstallation et configuration de NginxEn savoir plus.

Une fois la configuration terminée, exécutez dans le terminal :

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

Saisissez http://127.0.0.1 dans votre navigateur, et vous verrez la page "It work" de Django.