web-dev-qa-db-ja.com

Gunicorn構成ファイルはどこにありますか?

Gunicornのドキュメントでは、構成ファイルの編集について説明していますが、どこにあるのかわかりません。

おそらく簡単な答え:)私はAmazon Linux AMIを使用しています。

31
kennysong

答えは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の場所に対応していることに注意してください。

25
Arnaud Joly

サンプルファイルは次のとおりです。 https://github.com/benoitc/gunicorn/blob/master/examples/example_config.py

不要なものをコメントアウトして、Gunicornを次のように指定することができます。

gunicorn -c config.py myproject:app
5
iamyojimbo

デフォルトの設定は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: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 app:app

$ 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

1
brokenfoot

私はドキュメントを読んだ後にこれをしました:


  1. gunicornを介してアプリを展開する場合、通常はProcfileというファイルがあります
  2. このファイルを開き、-timeout 600を追加します

最後に、私のProcfileは次のようになります。

web:gunicorn app:app --timeout 6

0
Joe