配置与调试nginx与uwsgi

參考:


 

近期三天一直在调试Django+nginx+uwsgi+sqlite3部署的阿里云的server,系统是ubuntu的所下面载什么的都非常方便sudo spt-get就能够了
所以想着把这几天遇到的问题跟过程fork下来以后也许会遇到
项目tree 命令的话tree -L 2
├── manage.py
├── mysite
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── settings.py
│ ├── settings.pyc
│ ├── urls.py
│ ├── urls.pyc
│ ├── wsgi.py
│ └── wsgi.pyc
├── uwsgi.xml
└── app_name(weixin)
├── admin.py
├── build
├── __init__.py
├── models.py
├── templates
├── tests.py
└── views.py
1.nginx
nginx能够作为WEB Server,反向代理。负载均衡等服务。我用它基本是为了处理static file的
关于/etc/nginx/site-enables/以下能够创建一个文件
----->由于在run service nginx stop时候是执行的默认conf
也就是/etc/nginx/nginx.conf---->这个文件里会导入/etc/nginx/site-enables/下的配置还有/etc/nginx/nginx.d/下的
当然你也能够run指定的配置 nginx -c 就可以 例如以下给出的配置
server
{
        listen         
80;
        server_name    
10.1.6.79;
        #server_name能够是域名如我的zoues.com
www.zoues.com 都能够写可是要空格最后是;
        access_log     

/var/log/nginx/example_access
.log;
          #这边的log覆盖了/etc/nginx/nginx.conf设置的log假设这边不写的话log都在/var/log/nginx以下
        error_log      

/var/log/nginx/example_error
.log;
        root           

/var/www/example
;
        location
/ {
            uwsgi_pass     
127.0.0.1:9001;
               #这个是跟uwsgi配置关联
也就是2者的通信口能够是socket-->unix的跟ip方式都能够
可是unix的方式要创建文件
            include        
uwsgi_params;
#一定要包涵
          #  uwsgi_param    
UWSGI_SCHEME $scheme;
           # uwsgi_param    
SERVER_SOFTWARE    nginx/$nginx_version;
        }
}
2.uwsgi的选择 由于django特有的uwsgi协议所以选择uwsgi也是情理之中了
uWSGI的主要特点例如以下:

       超快的性能。

       低内存占用(实測为apache2的mod_wsgi的一半左右)。

多app管理。

       详尽的日志功能(能够用来分析app性能和瓶颈)。

高度可定制(内存限制大小。服务一定次数后重新启动等)

这配置中关键还是參数的理解
<uwsgi>

    <plugin>python</plugin>
# 记下Django所在的Python版本号,然后通过以下的命令切换uwsgi的默认Python版本号(一般不须要切换)

    <socket>127.0.0.1:9001</socket>
     #也就是nginx下配置的uwsgi_pass

    <pythonpath>/var/www/example/app/</pythonpath>
     #pythonpath非常重要 能够配置多个是为了寻找以下的<script>以及<module>的 配置的时候一定要相应你配置的某一个pythonpath 然后写<script>和<module>跟python中from * import *的关系是一致的 
#当然你若嫌麻烦的话就使用wsgi-file吧 一站究竟啊

    <app mountpoint="/">

        <script>wsgi_configuration_module</script>

    </app>

    <master/>

    <processes>4</processes>

    <reload-mercy>8</reload-mercy>

    <cpu-affinity>1</cpu-affinity>

    <max-requests>2000</max-requests>

    <limit-as>512</limit-as>

    <reload-on-as>256</reload-on-as>

    <reload-on-rss>192</reload-on-rss>
      <daemonize>/var/log/uwsgi.log</daemonize>
#这个是日志 最好写上

    <no-orphans/>

    <vacuum/>#退出清理

</uwsgi>

这个通过uwsgi -x xxx.xml去执行 须要xml模块(详细不记得了我没遇到不能执行的情况)
以下给出的是ini的配置
# uwsgi_XXX.ini file
[uwsgi] # Django-related settings
# the base directory (full path)
chdir = /var/www/<project path>
# Django's wsgi filemodule = <project name>.wsgi
# the virtualenv (full path)
home = <virtualenv path>
# process-related settings
# master
master = true
# maximum number of worker processes
processes = 10
# the socket (use the full path to be safe
socket = /var/www/<project path>/<project name>.sock
# ... with appropriate permissions - may be needed
# chmod-socket = 664
# clear environment on exit
vacuum = true
daemonize = /var/log/uwsgi.log
pidfile=/var/www/<project path>/uwsgi.pid
列2:这边是直接配置的wsgi-file所以也就没了pythonpath这个配置了

[uwsgi]
02 vhost = false

#多个项目时候须要

03 plugins = python
04 socket = 127.0.0.1:8077
05 master = true
06 enable-threads = true
07 workers = 1
08 wsgi-file = /root/nowamagic_venv/nowamagic_pj/nowamagic_pj/wsgi.py
09 virtualenv = /root/nowamagic_venv
10 chdir = /root/nowamagic_venv/nowamagic_pj

可能使用的命令

1. 关闭 uWSGI:

1 killall 
-9 uwsgi
2 killall
-s HUP /var/www/uwsgi 
3 killall
-s HUP /usr/
local/bin/uwsgi

2. 列出port占用情况:

1 netstat -lpnt

这些内容也就是这几天的了 站点备案时间太长慢慢等吧 这事情能够放一放了

以下写论文把那鸟项目做了 酱油打了太多 真是...

nginx+Uwsgi+Django总结与分析的更多相关文章

  1. nginx+uWSGI+django+virtualenv+supervisor发布web服务器

    nginx+uWSGI+django+virtualenv+supervisor发布web服务器   导论 WSGI是Web服务器网关接口.它是一个规范,描述了Web服务器如何与Web应用程序通信,以 ...

  2. Nginx+uwsgi+Django 的web应用环境部署-完整记录

    Python作为当前最火爆最热门,也是最主要的Web开发语言之一,在其二十多年的历史中出现了数十种Web框架,比如Django.Tornado.Flask.Twisted.Bottle和Web.py等 ...

  3. Nginx+uWSGI+Django部署web服务器

    目录 Nginx+uWSGI+Django部署web服务器 环境说明 前言 搭建项目 Django部署 编辑luffy/luffy/settings.py 编辑luffy/app01/views.py ...

  4. 12,nginx+uWSGI+django+virtualenv+supervisor发布web服务器

    导论 WSGI是Web服务器网关接口.它是一个规范,描述了Web服务器如何与Web应用程序通信,以及Web应用程序如何链接在一起以处理一个请求,(接收请求,处理请求,响应请求) 基于wsgi运行的框架 ...

  5. 08 nginx+uWSGI+django+virtualenv+supervisor发布web服务器

    一.为什么要用nginx,uwsgi? 1 首先nginx 是对外的服务接口,外部浏览器通过url访问nginx, 2nginx 接收到浏览器发送过来的http请求,将包进行解析,分析url,如果是静 ...

  6. nginx+uWSGI+django+virtualenv+supervisor发布web服务器流程

    导论 WSGI是Web服务器网关接口.它是一个规范,描述了Web服务器如何与Web应用程序通信,以及Web应用程序如何链接在一起以处理一个请求,(接收请求,处理请求,响应请求)基于wsgi运行的框架有 ...

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

    Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式. 在这种方式中,我们的通常做法是,将nginx作为服务器最前端,它将接收WEB的所有请求,统一管理请求.ng ...

  8. Nginx+uWSGI+Django+Python+ MySQL 搭建可靠的Python Web服务器

    一.安装所需工具 yum -y install gcc gcc-c++ rpm-build mysql* libtool-ltdl* libtool automake autoconf libtool ...

  9. 安装Nginx+uWSGI+Django环境

    Ubuntu Server 12.04 安装Nginx+uWSGI+Django环境 今天要介绍的是利用APT源直接apt-get install安装配置我们所需要的环境,首先按惯例先安装MySQL和 ...

随机推荐

  1. 【内核】几个重要的linux内核文件

    Preface 当用户编译一个linux内核代码后,会产生几个文件:vmlinz.initrd.img, 以及System.map,如果配置过grub引导管理器程序,会在/boot目录下看到这几个文件 ...

  2. 当滚动列表的时候,让input框失去焦点(移动端会收起键盘)

    1.拓展scroll.vue事件 beforeScroll:{ type:Boolean, default:false } if(this.beforeScroll){//滚动列表的时候收起键盘(移动 ...

  3. HTTP Basic Authentication认证

    http://smalltalllong.iteye.com/blog/912046 ******************************************** 什么是HTTP Basi ...

  4. nmon使用

    nmon使用 一.安装: http://nmon.sourceforge.net/pmwiki.php?n=Site.Download 二.直接运行nmon后按h键: 交互式常用: t = Top-P ...

  5. Docker、Dockerfile、Docker镜像、容器这些都是什么鸟?

    老生常谈,再再再……普及一下: Docker:最早是dotCloud公司出品的一套容器管理工具,但后来Docker慢慢火起来了,连公司名字都从dotCloud改成Docker. Dockerfile: ...

  6. mysql 实现多列唯一性约束

    alter table j_assistants add constraint unique_name_course_class unique(name_id,course_id,class_id);

  7. mongo源码学习(三)请求接收传输层

    在上一篇博客中(mongo源码学习(二)db.cpp之mongoDbMain方法分析),我们把db.cpp中的mongoDbMain的执行过程分析了一下,最后会调用initAndListen(serv ...

  8. Spring高级装配(二) 条件化的bean

    如果你希望一个bean在特定的条件下才会出现: 应用的类路径下包含特定的库时才创建 只有当某个特定的bean也声明之后才会创建 某个特定的环境变量设定之后才创建某个bean 在Spring 4之前,很 ...

  9. 主流HTML5游戏框架的分析和对比

    本文主要选取了Construct2.ImactJS.LimeJS.GameMaker.CreateJS.lycheeJS.Crafty.three.js.melonJS.Turbulenz.Quint ...

  10. QButton

    Button.h #pragma once // QButton class QButton : public CButton { DECLARE_DYNAMIC(QButton) // Constr ...