五步教你实现使用Nginx+uWSGI+Django方法部署Django程序

新建一个XML文件:

djangochina_socket.xml,将它放在/data/www/org_management目录下:

Nginx采用8077端口与uWSGI通讯,请确保此端口没有被其它程序采用

<uwsgi>
    <socket>:8077</socket>
    <chdir>/data/www/org_management</chdir>
    <module>org_management.wsgi</module>
    <processes>4</processes> <!-- 进程数 -->
    <daemonize>uwsgi.log</daemonize>
</uwsgi>

我们假设你将会把Nginx程序日志放到你的目录/data/www/org_management下,请确保该目录存在。

我们假设你的Django的static目录是/data/www/org_management/static/ , media目录是/data/www/org_management/media/,请确保这些目录存在。

我们假设你的域名是 www.you.com (在调试时你可以设置成你的机器IP或者直接注释掉)

我们假设你的域名端口是 80(在调试时你可以设置一些特殊端口如 8070)

基于上面的假设,我们为/etc/nginx/conf.d 添加以下配置 org_nginx.conf  确保org_nginx.conf 在nginx的安装目录,否则会找不到

server {
        listen   80;   #服务器开放端口号
        server_name yl.longleding.com;   #域名如果没有可以注释
        access_log /data/www/org_management/logs/access.log;
       #logs文夹必须有
        error_log /data/www/org_management/logs/error.log;
        #logs文件夹必须有

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        #静态文件夹
        location /static/xadmin/ {
            alias  /data/www/org_management/extra_apps/xadmin/static/xadmin/;
        }

       #静态文件夹
        location /static/ {
            alias  /data/www/org_management/static/;
        }
        #上传文件目录
        location /media/ {
            alias  /data/www/org_management/media/;
        }
        #建议放最后否则会出现找不到静态文件情况
        location / {
         include        uwsgi_params;
         uwsgi_pass     127.0.0.1:8077;  #和uwsgi通讯保持一致
        }
    }

在上面的设置后,可以让Nginx来处理静态文件(/static/ 和 /media/ )。非静态文件请求Nginx会发给 socket 8077,然后让uWSGI来进行处理。

Nginx+uWSGI+Django的实现方式

在完成上面配置后,需要按以下步骤来做:

  1. 重启Nginx服务器,以使Nginx的配置生效。
  2. nginx -s  reload

    重启后检查Nginx日志是否有异常。

  3. 启动uWSGI服务器
    /data/www/org_management
    
    uwsgi -x djangochina_socket.xml

    检查日志 uwsgi.log 是否有异常发现。

  4. 访问服务

    基于上面的假设你的域名是www.you.com

    因此,我们访问 www.you.com,如果发现程序与 单独使用Django启动的程序一模一样时,就说明成功啦!

  5. 关闭服务的方法  killall uwsgi  关闭所有uwsgi  在开启进程中可以设定一个uwsgi为主进程,杀死主进程即可        将uWSGi进程杀死即可。

一些建议

  1. uWSG配置文件的进程数,可以根据实际情况分配。不要开得太大,否则机器可能会内存耗用太高。一般来说,对于一个小社区来说,4个进程已经足够了。
  2. 一般情况下,可以编写一下 stop.sh 脚本 来关闭uWSGI。

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color: #f4f4f4; background-color: rgba(0, 0, 0, 0.85) }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color: #f4f4f4; background-color: rgba(0, 0, 0, 0.85) }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color: #f4f4f4; background-color: rgba(0, 0, 0, 0.85) }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color: #f4f4f4; background-color: rgba(0, 0, 0, 0.85) }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px Monaco; color: #f4f4f4; background-color: rgba(0, 0, 0, 0.85) }
span.s1 { }

时间: 2024-08-08 05:31:59

五步教你实现使用Nginx+uWSGI+Django方法部署Django程序的相关文章

【转】五步教你实现使用Nginx+uWSGI+Django方法部署Django程序(下)

五步教你实现使用Nginx+uWSGI+Django方法部署Django程序(下) By Django中国社区 at 2013-05-18 04:38 在上一篇文章<五步教你实现使用Nginx+uWSGI+Django方法部署Django程序(上)>中,阐述了如何只使用uWSGI来部署Django程序. 当然,单单只有uWSGI是不够的,在实际的部署环境中,Nginx是必不可少的工具. 在本篇文章中,我将一直延用“N步法”的风格来阐述如何将uWSGI与Nginx做连接来部署Django程序.并

【转】五步教你实现使用Nginx+uWSGI+Django方法部署Django程序(上)

五步教你实现使用Nginx+uWSGI+Django方法部署Django程序(上) By Django中国社区 at 2013-05-12 15:05 Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式. 在这种方式中,我们的通常做法是,将nginx作为服务器最前端,它将接收WEB的所有请求,统一管理请求.nginx把所有静态请求自己来处理(这是NGINX的强项).然后,NGINX将所有非静态请求通过uwsgi传递给Django,由Django来进行处理,

使用Nginx+uWSGI+Django方法部署Django程序(下)

在上一篇文章<五步教你实现使用Nginx+uWSGI+Django方法部署Django程序(上)>中,阐述了如何只使用uWSGI来部署Django程序. 当然,单单只有uWSGI是不够的,在实际的部署环境中,Nginx是必不可少的工具. 在本篇文章中,我将一直延用“N步法”的风格来阐述如何将uWSGI与Nginx做连接来部署Django程序.并在最后,会较为完整的阐述本社区的部署方法. 本文大纲: 环境介绍 配置uWSGI 配置Nginx Nginx+uWSGI+Django的实现方式 一些建

使用Nginx+uWSGI+Django方法部署Django程序(上)

Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式. 在这种方式中,我们的通常做法是,将nginx作为服务器最前端,它将接收WEB的所有请求,统一管理请求.nginx把所有静态请求自己来处理 (这是NGINX的强项).然后,NGINX将所有非静态请求通过uwsgi传递给Django,由Django来进行处理,从而完成一次WEB请求. 可见,uwsgi的作用就类似一个桥接器.起到桥梁的作用. NOTE:不使用nginx,只使用uwsgi+django也是可以

Nginx+uwsgi或fastcgi部署Django项目

nginx+uwsgi ubuntu下先安装下C编译器和Python环境: sudo apt-get install build-essential python-dev 使用pip安装uwsgi: pip install uwsgi nginx配置: 可以单独为站点设置一个配置文件: sudo vim /etc/nginx/sites-enabled/mysite 或者直接在nginx.conf中设置: sudo vim /etc/nginx/nginx.conf 设置: server { l

Nginx+uwsgi+celery+supervisor部署Django前后端分离项目

本实验实现了负载均衡.反向代理.动静分离,还实现了根据客户端设备user-agent进行转发,也就是移动端和PC端访问的页面不一样. 1. 项目部署逻辑图 2. 环境准备 服务器:6台VM操作系统:CentOS7LB.www.wap:安装Nginxuwsgi1.uwsgi2:安装nfs-utils.Python3解释器.virtualenvNFS:安装NFSMRCS:安装MySQL.Redis.virtualenv 注意:这里不介绍软件的安装Nginx安装参考:http://blog.51cto

五步教你改变窗体背景色

很多人都在羡慕别人有华丽丽的窗体背景色,为什么自己不能有一个?对!我们也可以有!下面给大家介绍如何修改自己窗体的背景色. 第一步:桌面右键,点击"个性化" 第二步:进入"个性化"以后,点击"窗口颜色" 第三步,进入"窗口颜色"以后,单击"高级外观设置" 第四步:单击"复选框",选择"窗口" 第五步:选择右边上面那个颜色板,如果想要更多颜色,点击"其他...&

Python3+django+nginx+uwsgi使用场景部署

1 环境介绍和准备Python3+django+nginx+uwsgi使用场景部署 当我们写完一套完整的网站功能,我们需要实时在生产环境上线,并需要容纳高并发的访问请求.所以我们需要部署以上来保证网站的服务质量. 1.1基本环境准备:echo 'LANG="en_GB.utf8"' > /etc/sysconfig/i18nLANG="en_GB.utf8" 1.2依赖环境:(env) [[email protected] nginx]# python -VP

nginx+uwsgi+virtualenv+supervisor部署项目

一.导论 WSGI是Web服务器网关接口.它是一个规范,描述了Web服务器如何与Web应用程序通信,以及Web应用程序如何链接在一起以处理一个请求,(接收请求,处理请求,响应请求) 基于wsgi运行的框架有Bottle,Django,Flask,用于解析动态HTTP请求 支持WSGI的服务器 wsgiref python自带的web服务器 Gunicorn 用于linux的 python wsgi Http服务器,常用于各种django,flask结合部署服务器. mode_wsgi 实现了Ap