配置与调试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. 腾讯云提示invalid pos, pos is bigger than filesize! pos: 0, file_size: 0错误

    腾讯云提示invalid pos, pos is bigger than filesize! pos: 0, file_size: 0错误 起因 使用hdfs dfs -text xxx命令提示下面错 ...

  2. spring AspectJ切入点语法详解 记录以便查阅

    AspectJ切入点语法详解 6.5.1  Spring AOP支持的AspectJ切入点指示符 切入点指示符用来指示切入点表达式目的,,在Spring AOP中目前只有执行方法这一个连接点,Spri ...

  3. whatweb tree

    . ├── 1.txt ├── addons │   ├── country-scanner │   ├── gggooglescan │   ├── hunter │   └── verify-ni ...

  4. IOS 禁止侧滑返回上个页面功能

    1.首先把顶部左侧返回按钮隐藏掉 //隐藏返回按钮 self.navigationItem.hidesBackButton = YES; 2.1.再禁止页面左侧侧 //禁止页面左侧滑动返回,注意,如果 ...

  5. 爬虫 Http请求,urllib2获取数据,第三方库requests获取数据,BeautifulSoup处理数据,使用Chrome浏览器开发者工具显示检查网页源代码,json模块的dumps,loads,dump,load方法介绍

    爬虫 Http请求,urllib2获取数据,第三方库requests获取数据,BeautifulSoup处理数据,使用Chrome浏览器开发者工具显示检查网页源代码,json模块的dumps,load ...

  6. [转]使用Navicat导入导出数据库表

    原文地址:https://blog.csdn.net/anselandevil/article/details/81667199 步骤1:数据中原始数据如下: 点击表,右键选择导出向导,选择导出为sq ...

  7. [转]Java中BigDecimal的使用

    原文地址:https://blog.csdn.net/cen_s/article/details/76472834 在日常开发中我们经常会碰到小数计算,而小数直接计算的话会出现一些小小的错误,如下 S ...

  8. Java实现图片添加水印

    参考别人的感觉挺好玩,还没仔细研究,先上代码. package WaterMark; import javax.imageio.ImageIO; import java.awt.*; import j ...

  9. 如何在CentOS 6.5上升级PHP

    CentOS 6.5上默认安装PHP 5.3.因为后台网站无法正确运行在PHP 5.3上,所以计划将PHP升级到开发平台一样的版本PHP 5.5.为了方便,我们采用YUM的方式升级PHP 工具/原料 ...

  10. docker 运行redis

    自从接触docker之后,很多软件都想着用docker运行,毕竟手动安装的话老是要配一些环境变量啊,找配置文件修改配置什么的,docker却有更简便的办法. 正题: 建一个docker应用容器可以通过 ...