Где файл конфигурации Gunicorn?

В документации к пулемету говорится об изменении конфигурационных файлов, но я понятия не имею, где он находится.

Наверное, простой ответ:) Я на Amazon Linux AMI.

Ответы

Ответ 1

Ответ заключается в документации по стрельбе. http://docs.gunicorn.org/en/latest/configure.html

Вы можете указать конфигурационный файл с .ini или python script.

Например, из проекта 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.

Ответ 4

Конфигурации по умолчанию считываются с 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