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 正则式 概述及常用字符
May 07 Python
python中如何使用朴素贝叶斯算法
Apr 06 Python
Pycharm技巧之代码跳转该如何回退
Jul 16 Python
python出现"IndentationError: unexpected indent"错误解决办法
Oct 15 Python
对Python 文件夹遍历和文件查找的实例讲解
Apr 26 Python
Python中GIL的使用详解
Oct 03 Python
利用python实现.dcm格式图像转为.jpg格式
Jan 13 Python
如何基于Python爬取隐秘的角落评论
Jul 02 Python
Python3爬虫中Splash的知识总结
Jul 10 Python
django rest framework使用django-filter用法
Jul 15 Python
selenium学习教程之定位以及切换frame(iframe)
Jan 04 Python
FP-growth算法发现频繁项集——发现频繁项集
Jun 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 设计模式之 单例模式
2008/12/19 PHP
thinkPHP使用pclzip打包备份mysql数据库的方法
2016/04/30 PHP
24条货真价实的PHP代码优化技巧
2016/07/28 PHP
PHP进制转换实例分析(2,8,16,36,64进制至10进制相互转换)
2017/02/04 PHP
JS+CSS实现仿新浪微博搜索框的方法
2015/02/24 Javascript
Javascript编写2048小游戏
2015/07/07 Javascript
AngularJS入门教程之ng-checked 指令详解
2016/08/01 Javascript
vue-router单页面路由
2017/06/17 Javascript
jquery.validate.js 多个相同name的处理方式
2017/07/10 jQuery
Angular在模板驱动表单中自定义校验器的方法
2017/08/09 Javascript
js 开发之autocomplete="off"在chrom中失效的解决办法
2017/09/28 Javascript
vue-cli webpack2项目打包优化分享
2018/02/07 Javascript
vue.js select下拉框绑定和取值方法
2018/03/03 Javascript
vue中的模态对话框组件实现过程
2018/05/01 Javascript
解决linux下node.js全局模块找不到的问题
2018/05/15 Javascript
Mint-UI时间组件起始时间问题及时间插件使用
2018/08/20 Javascript
JS 实现发送短信验证码的“59秒后重新发送验证短信”功能
2019/08/23 Javascript
Vue页面切换和a链接的本质区别详解
2019/11/12 Javascript
在Vue项目中使用Typescript的实现
2019/12/19 Javascript
微信小程序用户盒子、宫格列表的实现
2020/07/01 Javascript
微信小程序实现页面监听自定义组件的触发事件
2020/11/01 Javascript
基于JavaScript实现简单的轮播图
2021/03/03 Javascript
[49:12]完美世界DOTA2联赛PWL S2 Magma vs GXR 第二场 11.29
2020/12/02 DOTA
在Windows系统上搭建Nginx+Python+MySQL环境的教程
2015/12/25 Python
Python学生信息管理系统修改版
2018/03/13 Python
python web基础之加载静态文件实例
2018/03/20 Python
python批量下载网站马拉松照片的完整步骤
2018/12/05 Python
python实点云分割k-means(sklearn)详解
2020/05/28 Python
CSS3与动画有关的属性transition、animation、transform对比(史上最全版)
2017/08/18 HTML / CSS
美国Jeep配件购物网站:Morris 4×4 Center
2019/05/01 全球购物
大学毕业生通用自我评价
2014/01/05 职场文书
解除劳动关系协议书范文
2014/09/11 职场文书
公司新人试用期自我评价
2014/09/17 职场文书
业务员岗位职责范本
2015/04/03 职场文书
2015年环境整治工作总结
2015/05/22 职场文书
CentOS7设置ssh服务以及端口修改方式
2022/12/24 Servers