且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Nginx+Django+Uwsgi架构部署

更新时间:2022-09-13 15:49:55

 随着IT不断发展,用户对网站的体验也越来越高,做为一名Linux运维攻城师,就得学习更多知识,网络、系统、硬件、开发等等知识。

    尤其是近期自动化运维的不断发展,更多的基础运维工程师开始不断的升华自己,提升自己,学习更多开发知识来满足企业的发展。目前自动化开发运维主要集中在python django、php开发,今天我们一起来探讨主流WEB服务器Nginx如何来部署Django,直接进入主题:

一、Django环境部署

官网下载django版本,目前最新版为1.7版本,https://www.djangoproject.com/

然后解压安装,我这里安装完后,新建的app主目录为:/root/django/django/bin/command

1
2
3
4
5
[root@Linux_wugk_SA command]# pwd
/root/django/django/bin/command
[root@Linux_wugk_SA command]# ls
command  manage.py 
[root@Linux_wugk_SA command]#

二、Uwsgi安装部署

下载uwsgi安装包:wget http://projects.unbit.it/downloads/uwsgi-2.0.6.tar.gz

解压安装:tar xzfuwsgi-2.0.6.tar.gz ;cd uwsgi-2.0.6/ ;python setup.py install 即可。

安装完毕后,在/root/django/django/bin/command目录(与manage.py同级目录)新建如下文件:vi  django_wsgi.py

1
2
3
4
5
6
7
8
9
#!/usr/bin/env python
# coding: utf-8
import os
import sys
reload(sys)
sys.setdefaultencoding('utf8')
os.environ.setdefault("DJANGO_SETTINGS_MODULE","command.settings")
from django.core.handlers.wsgiimport WSGIHandler
application = WSGIHandler()

然后新建uwsgi配置文件,内容如下:vi uwsgi_socket.xml

1
2
3
4
5
6
7
<uwsgi>
   <socket>127.0.0.1:199</socket>
       <chdir>/root/django/django/bin/command</chdir>
           <module>django_wsgi</module>
               <processes>4</processes>
   <daemonize>uwsgi.log</daemonize>
</uwsgi>

注* chdir目录写当前目录,即/root/django/django/bin/command

三、Nginx部署配置

Nginx安装大家都非常熟悉,这里直接上Server段配置代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
server {
        listen 80;
        server_name localhost;
        index index.php index.html;
        location / {
            include     uwsgi_params;
            uwsgi_pass  127.0.0.1:199;
            uwsgi_param UWSGI_CHDIR  /root/django/django/bin/command;
            uwsgi_param UWSGI_SCRIPTdjango_wsgi;
            access_log/usr/local/nginx/logs/access.log;
            }
        location /static {
           root/root/django/django/bin/command/command;
        }
     }

四、部署测试

分别启动uwsgi和nginx即可,然后通过浏览器直接访问Nginx 80端口即可。

启动命令:

 uwsgi -x uwsgi_socket.xml 
/usr/local/nginx/sbin/nginx 

截图测试如下:

Nginx+Django+Uwsgi架构部署

Nginx+Django+Uwsgi架构部署


Nginx+Django+Uwsgi架构部署

本文转自 wgkgood 51CTO博客,原文链接:http://blog.51cto.com/wgkgood/1555300