Gunicorn 入门介绍

Gunicorn(Green Unicorn)是一个用于UNIX的Python WSGI HTTP服务器,它是一个受Ruby的Unicorn启发的pre-forking worker模型的实现。 Gunicorn服务器非常容易与各种Web框架集成,如Django、Flask等,只需少量配置即可运行你的应用程序。

启动语法:

gunicorn [OPTIONS] APP_MODULE

安装Gunicorn

在使用Gunicorn之前,你需要确保已经安装了它。可以通过pip或apt来安装:

```bash
pip install gunicorn
```

或 :

sudo apt install gunicorn

启动Python程序

启动一个Python Web应用程序通常需要指定你的应用对象的位置。例如,如果你有一个名为app.py的文件,并且其中定义了一个叫做app的Flask实例,你可以这样启动Gunicorn:

```bash

gunicorn --workers 3 --bind 0.0.0.0:5000 app:app
```

这里第一个app是指包含WSGI应用的模块名(不包括.py扩展),第二个app是这个模块中WSGI应用实例的变量名。workers制定工作进程数量。bind来绑定地址和端口

注意,

  • 该调用方式是作为一个模块来调用的。和python app.py调用的代码执行逻辑不同。

  • 其代码并没有执行到if name == 'main':封装的部分。

常用选项

  • -w: 设置工作进程的数量,例如-w 4会创建4个工作进程。
  • -b: 绑定地址和端口,默认为127.0.0.1:8000,可以指定为其他值比如-b 0.0.0.0:80
  • --daemon: 以守护进程的方式运行Gunicorn。
  • --access-logfile: 指定访问日志文件路径。
  • --error-logfile: 指定错误日志文件路径。

例如,以下命令将启动Gunicorn作为守护进程运行,监听所有网络接口上的80端口,使用3个工作进程,并记录访问和错误日志到特定文件:

```bash
gunicorn -w 3 -b 0.0.0.0:80 --daemon --access-logfile /var/log/gunicorn/access.log --error-logfile /var/log/gunicorn/error.log app:app
```

如何停止

使用 pkill 命令可以根据进程名终止进程。

pkill gunicorn

这会终止所有名为 gunicorn 的进程。

通过这些基本步骤和选项,你可以轻松地部署和运行你的Python Web应用程序。根据实际需求调整参数设置,可以优化性能和可靠性。