52

gunicorn 文档讨论了编辑配置文件,但我不知道它在哪里。

可能是一个简单的答案 :) 我在 Amazon Linux AMI 上。

4

5 回答 5

49

答案在 gunicorn 的文档中。 http://docs.gunicorn.org/en/latest/configure.html

您可以使用 .ini 或 python 脚本指定配置文件。

例如,来自 django-skel 项目

"""gunicorn WSGI server configuration."""
from multiprocessing import cpu_count
from os import environ


def max_workers():    
    return cpu_count()


bind = '0.0.0.0:' + environ.get('PORT', '8000')
max_requests = 1000
worker_class = 'gevent'
workers = max_workers()

你可以使用运行服务器

gunicorn -c gunicorn.py.ini project.wsgi

请注意 project.wsgi 对应于您的 wsgi 的位置。

于 2012-11-12T09:03:16.690 回答
22

示例文件在这里:https ://github.com/benoitc/gunicorn/blob/master/examples/example_config.py

您可以只注释掉不需要的内容,然后将 Gunicorn 指向它,如下所示:

gunicorn -c config.py myproject:app
于 2017-03-23T11:59:21.637 回答
8

就默认名称而言,Gunicorn 将在执行 Gunicorn 的目录中查找名为的配置文件gunicorn.conf.py

于 2018-11-23T13:49:05.847 回答
8

默认配置从site-packages/gunicorn/config.py

$ python -c "from distutils.sysconfig import get_python_lib; print('{}/gunicorn/config.py'.format(get_python_lib()))"
(output)
/somepath/flask/lib/python2.7/site-packages/gunicorn/config.py

您可以运行strace以查看正在以什么顺序打开哪些文件gunicorn

gunicorn 应用程序:app -b 0.0.0.0:5000

$ strace gunicorn app:app -b 0.0.0.0:5000
stat("/somepath/flask/lib/python2.7/site-packages/gunicorn/config", 0x7ffd665ffa30) = -1 ENOENT (No such file or directory)
open("/somepath/flask/lib/python2.7/site-packages/gunicorn/config.so", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/somepath/flask/lib/python2.7/site-packages/gunicorn/configmodule.so", O_RDONLY) = -1 ENOENT (No
such file or directory)
open("/somepath/flask/lib/python2.7/site-packages/gunicorn/config.py", O_RDONLY) = 5
fstat(5, {st_mode=S_IFREG|0644, st_size=53420, ...}) = 0
open("/somepath/flask/lib/python2.7/site-packages/gunicorn/config.pyc", O_RDONLY) = 6

gunicorn -c g_config.py 应用程序:应用程序

$ strace gunicorn -c g_config.py app:app
//    in addition to reading default configs, reads '-c' specified config file
stat("g_config.py", {st_mode=S_IFREG|0644, st_size=6784, ...}) = 0
open("g_config.py", O_RDONLY)

不要修改站点包中的配置文件,而是创建一个本地gconfig.py(任何名称)并仅定义要设置非默认值的变量,因为始终读取默认配置文件。

传递为gunicorn -c gconfig.py

$ cat gconfig.py // (eg)
bind = '127.0.0.1:8000'
workers = 1
timeout = 60
. . .

或使用命令行选项而不是配置文件:

gunicorn app:app -b 0.0.0.0:5000 -w 1 -t 60

gunicorn 配置文件属性/标志: http ://docs.gunicorn.org/en/stable/settings.html#settings

于 2018-12-01T17:57:24.413 回答
0

我在阅读文档后这样做了:


  1. 通过 gunicorn 部署我的应用程序时,通常有一个名为 Procfile 的文件
  2. 打开这个文件,添加--timeout 600

最后,我的 Procfile 会是这样的:

网站:gunicorn app:app --timeout 600

于 2019-02-22T06:33:00.623 回答