配置与调试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命令(41):文件和文件夹的颜色

    各个颜色的文件分别代表的是:蓝色表示目录:绿色表示可执行文件:红色表示压缩文件:浅蓝色表示链接文件:灰色表示其它文件:红色闪烁表示链接的文件有问题了:黄色是设备文件,包括block, char, fi ...

  2. cocoside 编译错误可能问题

    版本不对..查看/usr/xxx/.profile中console等的全局变量 安装了不和谐的版本..记得删除application/cosos 重新安装. 或者干掉cocostudio

  3. 【编码】Base64编码

    简述 为什么叫Base64?个人理解是,基础的64个字符. 而它的作用?用基础的(可理解为可安全传输的)64个字符,来表示难以表示的二进制或对程序造成干扰的字符. Base64的编码过程 自行编码分析 ...

  4. Android 开发添加控件事件的三种方式

    import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view ...

  5. c++11支持类数据成员的初始化

    在阅读TCPL第四版的时候看到,c++11支持类数据成员的初始化(In-Class Initializer),很有意思的功能. 测试代码如下: class Date { int year{2015}; ...

  6. 虚拟机三种网络模式详解(Bridge,Nat,Host-only)

    虚拟机网络模式 无论是vmware,virtual box,virtual pc等虚拟机软件,一般来说,虚拟机有三种网络模式: 1.桥接 2.NAT 3.Host-Only 初学者看到虚拟机有三种网络 ...

  7. [转]MySQL如何设置自动增长序列 SEQUENCE

    原文地址:https://blog.csdn.net/czbqoo01/article/details/70148516 解决思路:由于mysql不带sequence,所以要手写的,创建一张储存seq ...

  8. C#中Attribute和Property

    XAML是XML派生而来的语言,所以很多XML中的概念在XAML中是通用的. 为了表示同类标签中的某个标签与众不同,可以给它的特征(Attribute)赋值,为特征值赋值的语法如下: 非空标签:< ...

  9. C语言 · 身份证排序

    算法提高 身份证排序   时间限制:1.0s   内存限制:256.0MB      问题描述 安全局搜索到了一批(n个)身份证号码,希望按出生日期对它们进行从大到小排序,如果有相同日期,则按身份证号 ...

  10. filezilla server老提示connect server

    地址设置成127.0.0.1即可 端口14147 密码为空(也可能是string未测试) 上次登录的默认路径:C:\Users\admin\AppData\Roaming\FileZilla Serv ...