独角兽(gunicorn)

Gunicorn,绿色独角兽,是一个高性能的Python WSGI服务器,支持多进程模式,适用于Django和Flask等Web框架。它采用预派生工作进程模式,提供简单配置并能与Nginx无缝配合,提升Web应用性能。本文介绍了Gunicorn的原理、安装、启动和配置方法,包括nohup和&的区别以及如何在后台持久运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

?Gunicorn

介绍

django自带的单进程单线程服务无法满足多人同时访问的性能。

Gunicorn“green unicorn绿色独角兽”是一个被广泛使用的高性能的Python WSGI UNIX HTTP服务器,移植自Ruby的独角兽(Unicorn )项目,使用pre-fork worker模式,具有使用非常简单,轻量级的资源消耗,以及高性能等特点。

Gunicorn 服务器作为wsgi app的容器,能够与各种Web框架兼容(flask,django等),得益于gevent等技术,使用Gunicorn能够在基本不改变wsgi app代码的前提下,大幅度提高wsgi app的性能。

(了解)原理

参考 原理
worker

gunicorn WSGI vs uWSGI

https://ivan-site.com/2012/10/gevent-gunicorn-vs-uwsgi/

安装

官网
pip3 install gunicorn

简单启动

cd /home/yangzheng/jbt_blog/
gunicorn -w 1 -b 0.0.0.0:8000 jbt_blog.wsgi:application

多进程启动

配置

yourproject/gunicorn.conf

bind = '0.0.0.0:8000'
workers = 2
daemon = False
proc_name = 'app'   # 进程名
loglevel='info'
#chdir = '/home/yangzheng/jbt_blog/jbt_blog'  #gunicorn要切换到的目的工作目录

#accesslog = "/home/log/gunicorn_access.log"      #访问日志文件
#errorlog = "/home/log/gunicorn_error.log"        #错误日志文件
accesslog = "-"  #访问日志文件,"-" 表示标准输出
errorlog = "-"   #错误日志文件,"-" 表示标准输出

worker数量建议cpu核心数*2+1。
配置nginx时,需要将此bind地址写入nginx配置文件中。
daemon = True 下面启动就不用nohup关键字了。

以配置方式启动: cd到项目根目录;gunicorn -c gunicorn.conf jbt_blog.wsgi

nohup和&

目前一个问题是退出程序后命令随之结束导致web无法访问。
nohup和&区别参考 https://blog.youkuaiyun.com/hl449006540/article/details/80216061

&

&让命令进程在后台执行。
命令后接& 在后台运行,这时前台可以继续执行其它命令,并且刚才的命令不会中断。
python3 -m http.server &
任务相关命令:
以后台运行: 命令后& 或ctrl+Z
查看后台任务:jobs
后台转前台:fg [job_id]
(下面几个命令常用)
查看进程:ps -ef
查看端口:netstat -tnp | grep 8000
结束进程:kill -9 [pid]

nohup

hup中断的意思。ssh会话关闭后仍然运行。
用法:nohup放在 命令前 nohup python3 -m http.server
这样的进程叫守护进程deamon。
经常连用nohup command & 来让程序一直在后台运行。

(最终)启动

cd /home/yangzheng/jbt_blog
nohup gunicorn -c gunicorn.conf jbt_blog.wsgi &

终止

结束后台运行的程序以释放端口
ps -ef | grep gunicorn 可以看到多个worker进程
kill [pid]
其它可能用到的命令
netstat -tnlp 查看监听中的端口
killall
kill -9 [pid] 强制执行

参考

gunicorn原理
https://www.cnblogs.com/nanrou/p/7026802.html
https://blog.youkuaiyun.com/y472360651/article/details/78538188

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值