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 str与repr的区别
Mar 23 Python
python中__slots__用法实例
Jun 04 Python
Python 文件管理实例详解
Nov 10 Python
Python使用当前时间、随机数产生一个唯一数字的方法
Sep 18 Python
Python实用技巧之利用元组代替字典并为元组元素命名
Jul 11 Python
python中将正则过滤的内容输出写入到文件中的实例
Oct 21 Python
tensorflow 获取所有variable或tensor的name示例
Jan 04 Python
Python判断字符串是否为空和null方法实例
Apr 26 Python
keras分类模型中的输入数据与标签的维度实例
Jul 03 Python
10个python爬虫入门实例(小结)
Nov 01 Python
python飞机大战游戏实例讲解
Dec 04 Python
python基础之模块的导入
Oct 24 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初学入门
2006/11/19 PHP
php 友好URL的实现(吐血推荐)
2008/10/04 PHP
phpMyAdmin 链接表的附加功能尚未激活问题的解决方法(已测)
2012/03/27 PHP
php提高网站效率的技巧
2015/09/29 PHP
Windows 下安装 swoole 图文教程(php)
2017/06/05 PHP
js实现iframe动态调整高度的代码
2008/01/06 Javascript
JavaScript学习笔记(二) js对象
2011/10/25 Javascript
Prototype源码浅析 Enumerable部分(二)
2012/01/18 Javascript
JQuery的Ajax请求实现局部刷新的简单实例
2014/02/11 Javascript
深入分析javascript中console命令
2016/08/14 Javascript
微信端开发--登录小程序步骤
2017/01/11 Javascript
微信小程序getPhoneNumber获取用户手机号
2017/09/29 Javascript
Vue CLI4 Vue.config.js标准配置(最全注释)
2020/06/05 Javascript
vue-amap根据地址回显地图并mark的操作
2020/11/03 Javascript
[05:09]第二届DOTA2亚洲邀请赛决赛日比赛集锦:iG 3:0 OG夺冠
2017/04/05 DOTA
详解Python的Flask框架中的signals信号机制
2016/06/13 Python
使用Python对Access读写操作
2017/03/30 Python
django配置连接数据库及原生sql语句的使用方法
2019/03/03 Python
python绘制地震散点图
2019/06/18 Python
将自己的数据集制作成TFRecord格式教程
2020/02/17 Python
Python实现定时监测网站运行状态的示例代码
2020/09/30 Python
详解python的xlwings库读写excel操作总结
2021/02/26 Python
css3之UI元素状态伪类选择器实例演示
2017/08/11 HTML / CSS
诺心蛋糕官网:LE CAKE
2018/08/25 全球购物
Ryderwear澳洲官网:澳大利亚高端健身训练装备品牌
2018/09/18 全球购物
巴西美妆购物网站:Kutiz Beauté
2019/03/13 全球购物
党员2014两会学习心得体会
2014/03/17 职场文书
开展批评与自我批评发言材料
2014/10/17 职场文书
2014年政风行风评议工作总结
2014/10/21 职场文书
学生旷课检讨书500字
2014/10/28 职场文书
三下乡个人总结
2015/03/04 职场文书
元旦主持词开场白
2015/05/29 职场文书
2016大学迎新欢迎词
2015/09/29 职场文书
《落花生》教学反思
2016/02/16 职场文书
纪念建国70周年演讲稿
2019/07/19 职场文书
TensorFlow的自动求导原理分析
2021/05/26 Python