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之传说中的函数编写条规
Oct 11 Python
利用Python绘制数据的瀑布图的教程
Apr 07 Python
教你用Python脚本快速为iOS10生成图标和截屏
Sep 22 Python
Python字符串拼接的几种方法整理
Aug 02 Python
python3实现全角和半角字符转换的方法示例
Sep 21 Python
python matplotlib画图实例代码分享
Dec 27 Python
python用plt画图时,cmp设置方法
Dec 13 Python
pandas 层次化索引的实现方法
Jul 06 Python
Python将文字转成语音并读出来的实例详解
Jul 15 Python
使用Keras画神经网络准确性图教程
Jun 15 Python
使用ITK-SNAP进行抠图操作并保存mask的实例
Jul 01 Python
Python命名空间及作用域原理实例解析
Aug 12 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 PDO实现的事务回滚示例
2017/03/23 PHP
jQuery在vs2008及js文件中的无智能提示的解决方法
2010/12/30 Javascript
浏览器页面区域大小的js获取方法
2013/09/21 Javascript
常见的原始JS选择器使用方法总结
2014/04/09 Javascript
iScroll中事件点击触发两次解决方案
2015/03/11 Javascript
jquery使用slideDown实现模块缓慢拉出效果的方法
2015/03/27 Javascript
代码分析jQuery四种静态方法使用
2015/07/23 Javascript
javascript点击按钮实现隐藏显示切换效果
2016/02/03 Javascript
AngularJS Phonecat实例讲解
2016/11/21 Javascript
Angular.js初始化之ng-app的自动绑定与手动绑定详解
2017/07/31 Javascript
Bootstrap Table快速完美搭建后台管理系统
2017/09/20 Javascript
移动端网页开发调试神器Eruda的介绍与使用技巧
2017/10/30 Javascript
js中document.write和document.writeln的区别
2018/03/11 Javascript
AngularJS下$http服务Post方法传递json参数的实例
2018/03/29 Javascript
使用Vue自定义指令实现Select组件
2018/05/24 Javascript
vue 录制视频并压缩视频文件的方法
2018/07/27 Javascript
layui问题之渲染数据表格时,仅出现10条数据的解决方法
2019/09/12 Javascript
ligerUI的ligerDialog关闭刷新的方法
2019/09/27 Javascript
微信小程序动态评分展示/五角星展示/半颗星展示/自定义长度展示功能的实现
2020/07/22 Javascript
JavaScript实现轮播图效果
2020/10/30 Javascript
Python 基础之字符串string详解及实例
2017/04/01 Python
插入排序_Python与PHP的实现版(推荐)
2017/05/11 Python
单链表反转python实现代码示例
2018/02/08 Python
Python之读取TXT文件的方法小结
2018/04/27 Python
Python3爬虫教程之利用Python实现发送天气预报邮件
2018/12/16 Python
pytorch GAN生成对抗网络实例
2020/01/10 Python
python读取dicom图像示例(SimpleITK和dicom包实现)
2020/01/16 Python
python解释器pycharm安装及环境变量配置教程图文详解
2020/02/26 Python
Django获取model中的字段名和字段的verbose_name方式
2020/05/19 Python
在线服装零售商:SheIn
2016/07/22 全球购物
Origins悦木之源英国官网:雅诗兰黛集团高端植物护肤品牌
2017/11/06 全球购物
int和Integer有什么区别
2013/05/25 面试题
与C++相比,Java中的数组有什么不同
2014/03/25 面试题
百日安全活动总结
2014/05/04 职场文书
村党的群众路线教育实践活动工作总结
2014/10/25 职场文书
后天观后感
2015/06/08 职场文书