配置与调试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. Asp.Net时间方法大全

    DateTime dt = DateTime.Now; //当前时间 DateTime startWeek = dt.AddDays(- Convert.ToInt32(dt.DayOfWeek.To ...

  2. Django 查询时间段 时间搜索 过滤

    Django 查询时间段 1.大于某个时间 gt now = datetime.datetime.now()start = now – datetime.timedelta(hours=23, min ...

  3. Mac在Finder中显示/usr、/tmp、/var等隐藏目录

    Finder中默认是不显示/usr./tmp./var等隐藏目录的,通过在终端中输入一下命令来另其显示: #开启 defaults write com.apple.Finder AppleShowAl ...

  4. stopManagedWebLogic.sh强制关闭Managed Server

    Adding force shutdown of managed server in weblogic. ----------------------------------------------- ...

  5. 用Python从零开始实现K近邻算法

    KNN算法的定义: KNN通过测量不同样本的特征值之间的距离进行分类.它的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别.K通 ...

  6. 【Unity笔记】制作小地图Minimap

    真正的手把手教程,太棒了: http://forum.china.unity3d.com/thread-17192-1-1.html 或者是使用插件NJG MiniMap: http://www.ta ...

  7. ubuntu 安装 sshd

    ubuntu 上可以安装 SSHD 服务,方便远程操作. sudo apt-get update sudo apt-get install openssh-server sudo /etc/init. ...

  8. [net]ftp ssh http telnet https服务及端口

    转自:http://blog.csdn.net/qq_34642668/article/details/52116490 FTP服务器,则是在互联网上提供存储空间的计算机,它们依照FTP协议提供服务. ...

  9. CAS (5) —— Nginx代理模式下浏览器访问CAS服务器配置详解

    CAS (5) -- Nginx代理模式下浏览器访问CAS服务器配置详解 tomcat版本: tomcat-8.0.29 jdk版本: jdk1.8.0_65 nginx版本: nginx-1.9.8 ...

  10. ansible playbook对错误的处理

    Topics Playbooks 中的错误处理 忽略错误的命令 控制对失败的定义 覆写更改结果 Ansible 通常默认会确保检测模块和命令的返回码并且会快速失败 – 专注于一个错误除非你另作打算. ...