django启动uwsgi报错的解决方法


Posted in Python onApril 08, 2018

uwsgi介绍

uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换。

要注意 WSGI / uwsgi / uWSGI 这三个概念的区分。

  • WSGI是一种Web服务器网关接口。它是一个Web服务器(如nginx,uWSGI等服务器)与web应用(如用Flask框架写的程序)通信的一种规范。
  • uwsgi是一种线路协议而不是通信协议,在此常用于在uWSGI服务器与其他网络服务器的数据通信。
  • 而uWSGI是实现了uwsgi和WSGI两种协议的Web服务器。
  • uwsgi协议是一个uWSGI服务器自有的协议,它用于定义传输信息的类型(type of information),每一个uwsgi packet前4byte为传输信息类型描述,它与WSGI相比是两样东西。

uwsgi性能非常高

django启动uwsgi报错的解决方法

最近在django启动uwsgi报错的时候,发现了一些错误,下面来一起看看吧

查看uwsgi.log

*** Starting uWSGI 2.0.17 (64bit) on [Thu Apr 5 17:46:15 2018] ***
compiled with version: 4.4.7 20120313 (Red Hat 4.4.7-18) on 05 April 2018 02:08:03
os: Linux-2.6.32-642.6.2.el6.x86_64 #1 SMP Wed Oct 26 06:52:09 UTC 2016
nodename: GDJ_DEV
machine: x86_64
clock source: unix
detected number of CPU cores: 1
current working directory: /xxx/xxx/xxx/xxx
writing pidfile to uwsgi.pid
detected binary path: /xxx/xxx/.virtualenvs/h1/bin/uwsgi
!!! no internal routing support, rebuild with pcre support !!!
chdir() to /xxx/xxx/xxx/xxx
your processes number limit is 100000
your memory page size is 4096 bytes
detected max file descriptor number: 100000
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uWSGI http bound on 172.21.0.5:8000 fd 4
uwsgi socket 0 bound to TCP address 127.0.0.1:33522 (port auto-assigned) fd 3
Python version: 3.6.4 (default, Mar 24 2018, 10:32:21) [GCC 4.4.7 20120313 (Red Hat 4.4.7-18)]
Python main interpreter initialized at 0x1ff10d0
python threads support enabled
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 60 seconds
mapped 416880 bytes (407 KB) for 8 cores
*** Operational MODE: preforking+threaded ***
failed to open python file xxx/uwsgi.ini
unable to load app 0 (mountpoint='') (callable not found or import error)
*** no app loaded. going in full dynamic mode ***
*** uWSGI is running in multiple interpreter mode ***
spawned uWSGI master process (pid: 4865)
spawned uWSGI worker 1 (pid: 4866, cores: 2)
spawned uWSGI worker 2 (pid: 4867, cores: 2)
spawned uWSGI worker 3 (pid: 4868, cores: 2)
spawned uWSGI worker 4 (pid: 4869, cores: 2)
spawned uWSGI http 1 (pid: 4870)
--- no python application found, check your startup logs for errors ---
[pid: 4869|app: -1|req: -1/1] 118.26.10.242 () {40 vars in 777 bytes} [Thu Apr 5 17:46:31 2018] GET /user/login/ => generated 21 bytes in 0 msecs (HTTP/1.1 500) 2 headers in 83 bytes (0 switches on core 0)

解决第一个报错,注意操作的先后顺序:

1.卸载uwsgi

pip uninstall uwsgi

#注意此时卸载,pip会有缓存留在系统里

2.安装pcre支持库

yum install pcre pcre-devel pcre-static

3.继续安装uwsgi,不走pip缓存

pip install uwsgi -I --no-cache-dir

#启动uwsgi,已经没有“ !!! no internal routing support, rebuild with pcre support !!! ”报错了

解决第二个报错:

需要在你的uwsgi.ini文件中module指定项目下面的wsgi:

module=xxx.wsgi

#注:xxx为项目名称,startproject那个项目名称,这个错误解决后,下面的访问错误自然而然的就解决了!

附:我的uwsgi.ini配置文件

[uwsgi]
#socket=ip:port       #使用nginx代理请求时配置,直接访问uwsgi使用http方式
http=ip:port
chdir=/xxx/xxx       #项目根目录的绝对路径
wsgi-file=xxx/uwsgi.ini  #项目目录下的uwsgi.ini
module=xxx.wsgi      #指向项目下的wsgi模块
processes=4
threads=2
master=True
py-atuo-reload=1
env=DJANGO_SETTINGS_MODULE=xxx.settings
pidfile=uwsgi.pid
daemonize=uwsgi.log

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
Python中is与==判断的区别
Mar 28 Python
python生成excel的实例代码
Nov 08 Python
python的numpy模块安装不成功简单解决方法总结
Dec 23 Python
Python实现的圆形绘制(画圆)示例
Jan 31 Python
Python计算开方、立方、圆周率,精确到小数点后任意位的方法
Jul 17 Python
解决pyinstaller 打包exe文件太大,用pipenv 缩小exe的问题
Jul 13 Python
python 实现倒计时功能(gui界面)
Nov 11 Python
python3 删除所有自定义变量的操作
Apr 08 Python
Python实战之用tkinter库做一个鼠标模拟点击器
Apr 27 Python
pandas中DataFrame检测重复值的实现
May 26 Python
Python异常类型以及处理方法汇总
Jun 05 Python
Python爬虫实战之爬取京东商品数据并实实现数据可视化
Jun 07 Python
python 2.7.14安装图文教程
Apr 08 #Python
详解Python中的动态属性和特性
Apr 07 #Python
简单谈谈Python的pycurl模块
Apr 07 #Python
VSCode下好用的Python插件及配置
Apr 06 #Python
VScode编写第一个Python程序HelloWorld步骤
Apr 06 #Python
在VS Code上搭建Python开发环境的方法
Apr 06 #Python
python装饰器深入学习
Apr 06 #Python
You might like
PHP insert语法详解
2008/06/07 PHP
浅析ThinkPHP中execute和query方法的区别
2014/06/13 PHP
PHP中捕获超时事件的方法实例
2015/02/12 PHP
PHP直接修改表内容DataGrid功能实现代码
2015/09/24 PHP
php表单提交实例讲解
2015/11/12 PHP
发现的以前不知道的函数
2006/09/19 Javascript
获取任意Html元素与body之间的偏移距离 offsetTop、offsetLeft (For:IE5+ FF1 )[
2006/12/22 Javascript
js 数组操作代码集锦
2009/04/28 Javascript
jQuery实现密保互斥问题解决方案
2013/08/16 Javascript
jQuery拖拽 & 弹出层 介绍与示例
2013/12/27 Javascript
IE中图片的onload事件无效问题和解决方法
2014/06/06 Javascript
JavaScript对象封装的简单实现方法(3种方法)
2017/01/03 Javascript
jQuery实现优雅的弹窗效果(6)
2017/02/08 Javascript
详解用webpack2搭建angular2的项目
2017/06/22 Javascript
JS常见构造模式实例对比分析
2018/08/27 Javascript
JavaScript数据结构与算法之基本排序算法定义与效率比较【冒泡、选择、插入排序】
2019/02/21 Javascript
使用layui+ajax实现简单的菜单权限管理及排序的方法
2019/09/10 Javascript
[05:02]2014DOTA2 TI中国区预选赛精彩TOPPLAY第三弹
2014/06/25 DOTA
[08:42]DOTA2每周TOP10 精彩击杀集锦vol.2
2014/06/25 DOTA
[49:59]KG vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python中django学习心得
2017/12/06 Python
微信跳一跳辅助python代码实现
2018/01/05 Python
python实现向微信用户发送每日一句 python实现微信聊天机器人
2019/03/27 Python
pycharm 安装JPype的教程
2019/08/08 Python
python tkinter之顶层菜单、弹出菜单实例
2020/03/04 Python
Python数据结构dict常用操作代码实例
2020/03/12 Python
openCV提取图像中的矩形区域
2020/07/21 Python
深入了解Python 变量作用域
2020/07/24 Python
python进行OpenCV实战之画图(直线、矩形、圆形)
2020/08/27 Python
英国婴儿和儿童服装网站:Vertbaudet
2018/04/02 全球购物
生物科学专业个人求职信范文
2013/12/05 职场文书
项目管理计划书
2014/01/09 职场文书
酒店副总经理岗位职责范本
2014/02/04 职场文书
党校培训自我鉴定范文
2014/04/10 职场文书
中学生2014国庆节演讲稿:不屈的民族
2014/09/21 职场文书
为什么RedisCluster设计成16384个槽
2021/09/25 Redis