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 相关文章推荐
Phantomjs抓取渲染JS后的网页(Python代码)
May 13 Python
python 第三方库的安装及pip的使用详解
May 11 Python
python3写爬取B站视频弹幕功能
Dec 22 Python
python自动12306抢票软件实现代码
Feb 24 Python
python增加矩阵维度的实例讲解
Apr 04 Python
python 处理数字,把大于上限的数字置零实现方法
Jan 28 Python
python绘图模块matplotlib示例详解
Jul 26 Python
图解python全局变量与局部变量相关知识
Nov 02 Python
Python 内置函数globals()和locals()对比详解
Dec 23 Python
深入浅析Python 命令行模块 Click
Mar 11 Python
如何用Python绘制3D柱形图
Sep 16 Python
python工具——Mimesis的简单使用教程
Jan 16 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获取谷歌PR值算法,附上php查询PR值代码示例
2011/12/25 PHP
解析PHP函数array_flip()在重复数组元素删除中的作用
2013/06/27 PHP
Yii2 assets清除缓存的方法
2016/05/16 PHP
详解PHP中foreach的用法和实例
2016/10/25 PHP
workerman结合laravel开发在线聊天应用的示例代码
2018/10/30 PHP
jQuery+jqmodal弹出窗口实现代码分明
2010/06/14 Javascript
弹出最简单的模式化遮罩层的js代码
2013/12/04 Javascript
jquery无法设置checkbox选中即没有变成选中状态
2014/03/27 Javascript
js+css实现文字散开重组动画特效代码分享
2015/08/21 Javascript
【经典源码收藏】jQuery实用代码片段(筛选,搜索,样式,清除默认值,多选等)
2016/06/07 Javascript
js中判断变量类型函数typeof的用法总结
2016/08/09 Javascript
AngularJS实现的锚点楼层跳转功能示例
2018/01/02 Javascript
JS为什么说async/await是generator的语法糖详解
2019/07/11 Javascript
ElementUI之Message功能拓展详解
2019/10/18 Javascript
解决vue使用vant下拉框van-dropdown-item 绑定title值不变问题
2020/08/05 Javascript
python中pandas.DataFrame对行与列求和及添加新行与列示例
2017/03/12 Python
PyQt5利用QPainter绘制各种图形的实例
2017/10/19 Python
python实现邮件发送功能
2019/08/10 Python
Python多继承以及MRO顺序的使用
2019/11/11 Python
使用python创建Excel工作簿及工作表过程图解
2020/05/27 Python
学习Python爬虫的几点建议
2020/08/05 Python
python代数式括号有效性检验示例代码
2020/10/04 Python
HTML5 Canvas概述
2009/08/26 HTML / CSS
HTML5 实战PHP之Web页面表单设计
2011/10/09 HTML / CSS
日本订房网站,预订日本星级酒店/温泉旅馆:Relux(支持中文)
2020/01/03 全球购物
善意的谎言事例
2014/02/15 职场文书
秋季校运动会广播稿
2014/02/23 职场文书
《找不到快乐的波斯猫》教学反思
2014/02/24 职场文书
门卫岗位职责说明书
2014/08/18 职场文书
2015年教师节感恩寄语
2015/03/23 职场文书
个人落户申请书怎么写?
2019/06/28 职场文书
Apache压力测试工具的安装使用
2021/03/31 Servers
详解Redis实现限流的三种方式
2021/04/27 Redis
mysql 8.0.24 安装配置方法图文教程
2021/05/12 MySQL
springboot使用Redis作缓存使用入门教程
2021/07/25 Redis
关于ObjectUtils.isEmpty() 和 null 的区别
2022/02/28 Java/Android