当前位置: 首页 > news >正文

gunicorn常用参数命令

Gunicorn 是一个 Python 的 WSGI HTTP 服务器。具有实现简单,轻量级,高性能等特点。更多介绍内容参考官网,这里介绍几个常用参数。

安装

pip3 install gunicorn

通过输入gunicorn -v查看版本。

最简洁的启动。首先进入到项目目录,例如django项目和manage.py同级目录。

gunicorn <your_project>.wsgi:application --bind 127.0.0.1:8000

其中gunicorn为启动gunicorn服务器。<your_project>则为你的项目名称如faloo_hero。如
在这里插入图片描述
这样启动只有一个进程,开启多进程的参数为–workers=

gunicorn --bind 0.0.0.0:8000 faloo_hero.wsgi:application --workers=4

如上命令就启动了4个并行进程。线上环境通常推荐进程数为cpu数量*2+1 。

上述启动仍然有明显的问题,就是会占用一个终端会话。导致没法执行其他命令,除非用Ctrl+C退出进程。改为为守护进程加上参数nohup &

nohup gunicorn --bind 0.0.0.0:8000 faloo_hero.wsgi:application --workers=4 &

如上命令执行完后我们仍然可以继续在这个终端执行其他命令。
``上述启动之后缺乏日志跟踪,加上如下参数

nohup gunicorn --bind 0.0.0.0:8000 faloo_hero.wsgi:application --log-level=info --workers=4>run.log 2>&1 &

其中–log-level=info为开启日志,通常生产环境为info级别,调试为debug级别。run.log 2>&1 是将标准输出重定向到 run.log 文件中
–log-level 是 设置日志级别的参数,具有以下可选值:

debug:最详细的日志记录级别,通常仅在开发和调试阶段使用。
info:普通信息记录级别,通常用于生产环境中的正常操作和事件记录。
warning:警告记录级别,表示一些不寻常但不是错误的情况。
error:错误记录级别,表示出现错误或异常。
critical:严重错误记录级别,表示可能导致应用程序崩溃的问题。

以上命令会在每次启动的时候重写run.log,如果我们想要追加的方式则只需要在将4后面的>参数改为>>。

nohup gunicorn --bind 0.0.0.0:8000 faloo_hero.wsgi:application --log-level=info --workers=4 >> run.log 2>&1 &

效果如下图
在这里插入图片描述可以查看一下我们的gunicorn进程情况
在这里插入图片描述

其中,一个 Gunicorn 的主进程, 4 个进程是 Gunicorn 的 worker 进程。
使用cat run.log查看日志:
在这里插入图片描述
通过nginx代理或者对外开放该端口。打开网站查看运行情况
在这里插入图片描述

http://www.lryc.cn/news/68942.html

相关文章:

  • TimerResolution.exe
  • Qt魔法书:打造自定义鼠标键盘脚本
  • 〖Python网络爬虫实战㉖〗- Selenium库和ChromeDriver驱动的安装
  • U8产成品入库API接口 --参照生产订单/产品检验/不良品
  • gdb打印的堆栈有些函数是??()是什么
  • 【Jmeter第三章】Jmeter给请求添加请求头
  • WebApi必须知道的RestFul,Swagger,OAuth2.0
  • 【网络编程】demo版UDP网络服务器实现
  • C++的stack和queue
  • C++ RAII机制
  • AI模型部署概述
  • 【Rust 日报】2023-05-17 pgx -- 用于在 Rust 中开发 PostgreSQL 扩展的框架
  • 二十、Zipkin持久化链路跟踪
  • 大学毕业设计这样做可以吗
  • NSUserDefaults
  • Windows下通过cwRsync备份到服务器服务器之间使用rsync备份传输
  • IS420UCSBH4A 用于高速应用中的Mark VIe系列
  • 将JSON写入文件
  • effective c++ 35 考虑virtual函数以外的其他选择
  • Akura Medica:新型静脉血栓切除系统,完成首次人体试验
  • 大型央企集团财务经营分析框架系列(三)
  • C++并发编程:std::future、std::async、std::packaged_task与std::promise的深度探索
  • 测牛学堂:2023软件测试学习教程之sql的单表查询排序和模糊查询
  • CSS第一天总结
  • js中各种console使用方法大全
  • 江西棒球未来发展规划·棒球1号位
  • 【笔记】做二休五
  • Qt6之字符串类内存分配新变化——16的次方增加
  • C++ 名称空间
  • 作为一名普通的java程序员,我想和大家分享一下4年来的工作内容