当我们使用python开发了一个web应用后,在部署的时候通常选择gunicorn+nginx的组合。下面记录一下安装配置过程。
Gunicorn的使用
安装过程很简单:
pip install gunicorn
启动服务,需要切换到web应用项目的根目录下,执行以下命令:
gunicorn blogproject.wsgi -w 2 -k gthread -b 0.0.0.0:8000
其中用到的参数含义如下:
-w 2 表示启动2个worker用于处理请求(一个worker可以理解为一个进程),通常将 worker 数目设置为 CPU 核心数的 2-4 倍
-k gthread 指定每个worker处理请求的方式,根据大家的实践,指定为 gthread 的异步模式能获取比较高的性能,因此我们采用这种模式
-b 127.0.0.1:8000 将服务绑定到 8000 端口,其中IP地址可以根据自己情况更改(0.0.0.0、127.0.0.1 .....)
一般情况常用上面的3个参数就够了。想要了解更详细参数,看下面:
-c CONFIG : CONFIG,配置文件的路径,通过配置文件启动;生产环境使用;
-b ADDRESS : ADDRESS,ip加端口,绑定运行的主机;
-w INT, --workers INT:用于处理工作进程的数量,为正整数,默认为1;
-k STRTING, --worker-class STRTING:要使用的工作模式,默认为sync异步,可以下载eventlet和gevent并指定
--threads INT:处理请求的工作线程数,使用指定数量的线程运行每个worker。为正整数,默认为1。
--worker-connections INT:最大客户端并发数量,默认情况下这个值为1000。
--backlog int:未决连接的最大数量,即等待服务的客户的数量。默认2048个,一般不修改;
-p FILE, --pid FILE:设置pid文件的文件名,如果不设置将不会创建pid文件
--access-logfile FILE : 要写入的访问日志目录
--access-logformat STRING:要写入的访问日志格式
--error-logfile FILE, --log-file FILE : 要写入错误日志的文件目录。
--log-level LEVEL : 错误日志输出等级。
--limit-request-line INT : HTTP请求头的行数的最大大小,此参数用于限制HTTP请求行的允许大小,默认情况下,这个值为4094。值是0~8190的数字。
--limit-request-fields INT : 限制HTTP请求中请求头字段的数量。此字段用于限制请求头字段的数量以