使用pip安装uwsgi和uwsgi
pip install uwsgi
pip安装用户软件
pip安装uwsgi后,Linux命令行敲击uwsgi --help后,是否意味着找不到uwsgi命令?
a )进入python安装的hcdc,使用ln -s软链接到/usr/hcdc/下;
web目录规范化(项目中只保留一个uwsgi文件夹和ini文件,以后用于配置) )。
root @ root :~~/usr/local/project $ ls-l
.项目目录及其他文件
hello.py
hello.pyc
uwsgi
)在uwsgi.log #日志文件中,从该文件查看uw SGI日志
()-可以在uwsgi.PID # PID文件中控制uw SGI的重新启动和停止
)在配置uw SGI.sock # socket文件、nginx时使用
()可以在uwsgi.status # status文件中查看uw SGI的运行状态
( uwsgi.ini
3.uwsgi.ini文件,配置参数详细信息
master=true
#启动主进程以管理其他进程。 所有其他uwsgi进程都是此master进程的子进程,如果有名为kill的master进程,则相当于重新启动所有uwsgi进程。
chdir=/web/www/mysite
在加载app之前切换到当前目录并指定要执行的目录
module=mysite.wsgi
加载加载名为mysite/WSGI.py的模块的wsgi模块
py-autoreload=1
监视python模块mtime以触发过载(仅在开发时使用) ) ) ) ) ) ) ) ) )。
lazy-apps=true
#将APP应用程序加载到每个工作器而不是主
socket=/test/myapp.sock
#可以通过指定套接字文件或指定127.0.0.1:9000来接收网络套接字
启动processes=2 #个作业进程,生成指定数量的工作器/进程
buffer-size=32768
将用于uwsgi数据包分析的内部缓冲区大小设置为64k。 默认值为4k。
daemonize=/var/log/myapp _ uw SGI.log
#在后台运行进程并将日志发送到指定的日志文件或udp服务器
log-maxsize=5000000 #设置日志文件的最大大小
禁用禁用记录=true #禁用请求记录
vacuum=true #服务器退出时自动删除UNIX套接字文件和pid文件。
设置listen=120 #套接字的监听队列的大小。 (默认值: 100 ) )。
pidfile=/var/run/uwsgi.pid #指定pid文件
启用- threads=true
#允许以内联语言启动线程。 这样,可以在app程序中生成子线程
reload-mercy=8
#在顺利重新启动(在处理收到的请求之前不重新启动)的作业子进程中,设置等待此作业完成的最长秒数。 这样,在顺利重新启动作业子进程的同时,如果作业进程的结束时间超过8秒,该设置将强制结束。 无视以前接收到的请求直接结束。
最大请求=5000
#为每个工作进程设置请求数上限。 当一个工作人员处理的请求数达到此值时,该工作人员将被重用(重新启动)。 使用此选项可以默默地对抗内存泄漏
limit-as=256
使用POSIX/UNIX setrlimit ()函数限制每个uWSGI进程的虚拟内存使用量。 此配置限制uWSGI进程占用的虚拟内存不超过256米。 如果虚拟内存达到256米并继续申请虚拟内存,程序将报告内存错误,并且此http请求将返回500个错误。
harakiri=60
#如果一个请求超过此harakiri超时时间,则放弃此请求,并且当前处理此请求的工作流程将被重用。 也就是说,它将重新启动
原文摘录(感谢) https://blog.csdn.net/t 8116189520/article/details/8838801
常用命令
uwsgi --ini uwsgi.ini #启动
uw SGI--重新启动uw SGI.PID #重新启动
uwsgi --stop uwsgi.pid #关闭
使用uwsgi部署flask报告可能出现的“unable to find ' application ' callable infile”错误的原因如下:
unable to find ' application ' callable infile.//_ init _.py
unabletoloadapp0(mountpoint=' ' ) callable not found or import error ) )。
* * noapploaded.goinginfulldynamicmode * * *
您的启动文件中没有flask框架的实例。 必须暴露变量。
APP=flask(_name__ )
uwsgi配置错误
chdir=/user
wsgi-file=(必须是chdir的相对目录,而不是配置文件的相对目录)。
为什么弄错unabletoloadconfigurationfrom/opt/bhcrjy/uw SGI :
* * *操作模式:预定义ing * * *
[init_app]redisPool is 32376
[init_app]redisPool is 32376
* servingflaskapp ' uw SGI _ file _ _ bhcrjyapp _ runserver ' (lazy loading )
*环境:产品
warning : thisisadevelopmentserver.donotuseitinaproductiondeployment。
useaproductionwsgiserverinstead。
*调试模式: on
* running on http://127.0.0.1:5000//pressctrlctoquit )
* Restarting with stat
//错误在这里。 启动后立即停止
unabletoloadconfigurationfrom/opt/bhcrjy/uw SGI
已删除vacuum : pidfile。
原因是您的启动文件中的app.run (),应该删除或使用其他文件。 WSGI将自动调用并启动Flask的callable方法。
因为有急事,我先撤了!