<p>gunicorn 20.0.0--[servermain]の䞋の匕数を怜出しない貌り付け</p>

䜜成日 2019幎11月12日  Â·  31コメント  Â·  ゜ヌス: benoitc/gunicorn

こんにちはgunicornのメンテナ、

環境

  • python 3.6.1
  • pyramid==1.9.2

2019幎9月12日に、このStack Overflowの提案に埓っお、内郚pyramidサヌバヌのデプロむ方法をリファクタリングし、 waitressをgunicornに眮き換えたした。

https://stackoverflow.com/a/26872261/10491481

内郚PRが行われた時点で、 gunicornの最新リリヌスは19.9.0でした。

特に、開発および本番のCentOS 6.5サヌバヌでの倉曎をテストするために、今日も実装を確認するように䟝頌されたした。 コヌドベヌスの新しいgit cloneを䜿甚しおこれを行うこずにしたした。

PRを䜜成したずき、 setup.pyでgunicornのバヌゞョンを指定しおいなかったため、今日pip installを実行するず、予期せずに gunicorn==20.0.0をダりンロヌドしおむンストヌルしたした。

[server:main] $の䞋の$ development.iniの蚭定が、起動時に反映されなかった理由は明らかではありたせんでした。

明確にするために、 development.iniの次の蚭定を䜿甚したす。

[server:main]
use = egg:gunicorn#main
host = 0.0.0.0
port = 9090
workers = 1
worker_class = gevent
certfile=/etc/ssl/certs/current/webserver.cer
keyfile=/etc/ssl/certs/current/private.key.u
ca_certs=/etc/ssl/certs/current/intermediate.cert

gunicorn 19.9.0 

$ gunicorn --version
gunicorn (version 19.9.0)
$ gunicorn --paste development.ini 
[2019-11-12 12:42:59 -0800] [16733] [INFO] Starting gunicorn 19.9.0
[2019-11-12 12:42:59 -0800] [16733] [INFO] Listening at: https://0.0.0.0:9090 (16733)
[2019-11-12 12:42:59 -0800] [16733] [INFO] Using worker: gevent
[2019-11-12 12:42:59 -0800] [16744] [INFO] Booting worker with pid: 16744

gunicorn 20.0.0

$ gunicorn --version
gunicorn (version 20.0.0)
$ gunicorn --paste development.ini 
[2019-11-12 12:45:28 -0800] [17295] [INFO] Starting gunicorn 20.0.0
[2019-11-12 12:45:28 -0800] [17295] [INFO] Listening at: http://127.0.0.1:8000 (17295)
[2019-11-12 12:45:28 -0800] [17295] [INFO] Using worker: sync
[2019-11-12 12:45:28 -0800] [17300] [INFO] Booting worker with pid: 17300

2぀の出力の間の泚意

  • SSLを䜿甚しおデプロむしなくなりたした gunicorn 20.0.0の出力がhttpであるこずに泚意しおください
  • host匕数が正しくなくなりたした 0.0.0.0 127.0.0.1を䜿甚
  • port匕数が正しくなくなりたした 9090 8000を䜿甚

gunicorn 20.0.0の倉曎ログを調べたした

http://docs.gunicorn.org/en/stable/news.html

しかし、 --paste匕数に察する意図的な重倧な倉曎に぀いおは蚀及されおいないようです。

䟡倀があるので、コマンドラむンでgunicorn 20.0.0を䜿甚しお可胜な匕数を枡すず、サヌバヌは意図したずおりに起動したす。

$ gunicorn \
  --paste development.ini \
  -b 0.0.0.0:9090
  --workers 1 \
  --certfile /etc/ssl/certs/current/webserver.cer \
  --keyfile /etc/ssl/certs/current/private.key.u
[2019-11-12 12:54:08 -0800] [18979] [INFO] Starting gunicorn 20.0.0
[2019-11-12 12:54:08 -0800] [18979] [INFO] Listening at: https://0.0.0.0:9090 (18979)
[2019-11-12 12:54:08 -0800] [18979] [INFO] Using worker: sync
[2019-11-12 12:54:08 -0800] [18985] [INFO] Booting worker with pid: 18985

この問題を理解する䞊での助けをいただければ幞いです。

これを再珟可胜にするために、私の環境に぀いお提䟛できる詳现があれば教えおください。

ありがずう、
コリヌ

最も参考になるコメント

問題を再床開いお、自己割り圓おしたす。 ここで倉曎ログを読みやすくするために曎新したら、閉じたす。

繰り返しになりたすが、最初に倉曎ログでそれをより明確に呌び出さなかったこずをお詫びしたす。

党おのコメント31件

謝眪いたしたす。 倉曎ログの゚ントリには「SimplifyPasteDeploymentのドキュメント」ずしか曞かれおいないので、ここでより良いニュヌス゚ントリを準備するのを手䌝うべきでした。

このためのPRはここにありたす https //github.com/benoitc/gunicorn/pull/1957

以前はuse = egg:gunicorn#mainを非掚奚にしたしたが、珟圚は非掚奚ではありたせん。 この倉曎は、PasteDeploy互換環境でのGunicornの圹割を明確にするこずを目的ずしおいたす。

このスタむルの.iniファむルでGunicornを䜿甚するには2぀のオプションがありたす。

最初のオプションは、 gunicorn CLIを䜿甚するこずです。 これを行うずきは、Gunicorn独自のCLIフラグたたはGunicorn独自の構成モゞュヌルデフォルトgunicorn.conf.py を䜿甚しおサヌバヌ匕数を構成する必芁がありたす。 Gunicorn bindは゜ケットをバむンドし、リロヌドを管理し、PIDファむルを曞き蟌みたす。 Gunicornは、 .iniのappセクションを䜿甚しお、呌び出し可胜なアプリケヌションを構成できたす。

2番目のオプションは、 pserveなどの貌り付けスクリプトランナヌを䜿甚するこずです。 この堎合、このスクリプトランナヌは、リロヌドの管理、PIDファむルの曞き蟌みなどを行いたす。 他のほずんどのオプションは匕き続き機胜したすが、 .iniファむルのserverブロックを䜿甚するには、貌り付けず互換性のあるスクリプトランナヌを呌び出す必芁がありたす。 Gunicornはもはやそのようなスクリプトランナヌではありたせん。

もっず明確にするこずができるかどうか教えおください。

あなたの堎合、以前ず同じように続行できるはずですが、 gunicornよりも$ pserveを䜿甚しおアプリケヌションを開始したす。 Gunicornのすべおのサヌバヌ構成は、すでに行っおいるように、 serverブロックに含めるこずができたす。

以前の動䜜では、ファむルず競合するオプションをコマンドラむンで指定できるため、混乱を招く可胜性がありたした。 たた、 .iniファむルで補間甚の構成倉数を指定する機胜を远加し、異なるappブロックに加えお異なる$ serverブロックを指定する機胜を远加するように芁求されたした。 その結果、これらすべおの機胜のサポヌトを远加しようずするのではなく、GunicornをPaste_server_ランナヌずしお䜿甚するこずを廃止するこずが決定されたした。 Gunicorn CLIは、Paste Deploy .iniファむルの読み取りをサポヌトしおアプリケヌションを構築するようになりたしたが、 serverブロックの䜿甚は、その゚コシステムの専甚ツヌルに任されおいたす。

あなたの堎合、以前ず同じように続行できるはずですが、 gunicornよりも$ pserveを䜿甚しおアプリケヌションを開始したす。

速い応答@tilgoviをありがずう

あなたの掚薊に埓う

$ pserve development.ini
# ...
Starting server in PID 40148.
[2019-11-12 14:26:30 -0800] [40148] [INFO] Starting gunicorn 20.0.0
[2019-11-12 14:26:30 -0800] [40148] [INFO] Listening at: https://0.0.0.0:9090 (40148)
[2019-11-12 14:26:30 -0800] [40148] [INFO] Using worker: gevent
[2019-11-12 14:26:30 -0800] [40263] [INFO] Booting worker with pid: 40263

これは玠晎らしいこずです。私が開いた内郚PRの䞀郚では、コマンドpserveをgunicornに倉曎する必芁がありたした。これは、私が元の開発者ではないため、少し譊戒しおいたした。内郚APIサヌバヌ。

これで問題は解決したした。この問題を自由に閉じおください=

ありがずう、
コリヌ

最埌にもう1぀、思い出せる詳现をすべお远加したず思いたす。 serverブロックがegg:gunicorn#main以倖のものを指定した堎合でも、$ gunicorn --paste production.iniを呌び出すず、サヌバヌずしおGunicornが䜿甚される可胜性がありたす。

Gunicornは䞻にサヌバヌおよびプロセスマネヌゞャヌであるため、Gunicornが任意のPaste互換サヌバヌを呌び出すための䞀般的なCLIであるこずは意味がありたせん。 代わりに、GunicornはPaste Deployアプリケヌションをサポヌトするサヌバヌであり、Paste互換のサヌバヌです。 ただし、これは貌り付けスクリプトランナヌCLIではありたせん。

このためにPyramidクックブックで問題を開きたした https //github.com/Pylons/pyramid_cookbook/issues/222

これはGunicorn自䜓で培底的に文曞化したず思いたしたが、最初はリファレンスが芋぀かりたせんでした。 ここにありたす http //docs.gunicorn.org/en/stable/run.html#paste -deployment

@tilgoviは、これは私のチヌムにずっおも倧きな倉化でした。 おそらく、倉曎ログの重倧な倉曎郚分に移動する䟡倀がありたすか

問題を再床開いお、自己割り圓おしたす。 ここで倉曎ログを読みやすくするために曎新したら、閉じたす。

繰り返しになりたすが、最初に倉曎ログでそれをより明確に呌び出さなかったこずをお詫びしたす。

@tilgoviバンプ

これを別の問題ずしお開く必芁があるかどうかをお知らせください。

これはコヌドベヌスの孀立した問題である可胜性がありたすが、もう少しテストした埌、私のチヌムは、APIサヌバヌの堎合、 gunicorn 20.0.0が関数pyramid_ldap3.get_ldap_connector $を壊しおいるこずに気付きたした。

gunicorn 20.0.0 

始めるずき

$ pip list | grep gunicorn
gunicorn             20.0.0
$ pserve bioapps/development.ini
[2019-11-20 15:55:30 -0800] [9902] [INFO] Starting gunicorn 20.0.0
[2019-11-20 15:55:30 -0800] [9902] [INFO] Listening at: https://0.0.0.0:10999 (9902)
[2019-11-20 15:55:30 -0800] [9902] [INFO] Using worker: gevent
[2019-11-20 15:55:30 -0800] [10034] [INFO] Booting worker with pid: 10034
/home/colim/Projects/bioapps/bioapps.api.ssl/centos7venv/lib/python3.6/site-packages/gunicorn/workers/ggevent.py:53: MonkeyPatchWarning: Monkey-patching ssl after ssl has already been imported may lead to errors, including RecursionError on Python 3.6. It may also silently lead to incorrect behaviour on Python 3.7. Please monkey-patch earlier. See https://github.com/gevent/gevent/issues/1016. Modules that had direct imports (NOT patched): ['urllib3.util.ssl_ (/home/colim/Projects/bioapps/bioapps.api.ssl/centos7venv/lib/python3.6/site-packages/urllib3/util/ssl_.py)', 'urllib3.util (/home/colim/Projects/bioapps/bioapps.api.ssl/centos7venv/lib/python3.6/site-packages/urllib3/util/__init__.py)'].
  monkey.patch_all()

認蚌を詊みた埌

[2019-11-20 15:57:54,189] INFO  [access:342][DummyThread-1] 10.9.202.54 - - "POST https://bioappsdev02.bcgsc.ca:10999/session HTTP/1.1" {'username': 'colim', 'password': ''}
[2019-11-20 15:57:57,276] ERROR [exc_logger:114][DummyThread-1] 'https://bioappsdev02.bcgsc.ca:10999/session'
Traceback (most recent call last):
  File "/home/colim/Projects/bioapps/bioapps.api.ssl/centos7venv/lib/python3.6/site-packages/pyramid/tweens.py", line 39, in excview_tween
    response = handler(request)
  File "/home/colim/Projects/bioapps/bioapps.api.ssl/centos7venv/lib/python3.6/site-packages/pyramid/router.py", line 156, in handle_request
    view_name
  File "/home/colim/Projects/bioapps/bioapps.api.ssl/centos7venv/lib/python3.6/site-packages/pyramid/view.py", line 642, in _call_view
    response = view_callable(context, request)
  File "/home/colim/Projects/bioapps/bioapps.api.ssl/centos7venv/lib/python3.6/site-packages/pyramid/config/views.py", line 181, in __call__
    return view(context, request)
  File "/home/colim/Projects/bioapps/bioapps.api.ssl/centos7venv/lib/python3.6/site-packages/pyramid/viewderivers.py", line 390, in attr_view
    return view(context, request)
  File "/home/colim/Projects/bioapps/bioapps.api.ssl/centos7venv/lib/python3.6/site-packages/pyramid/viewderivers.py", line 368, in predicate_wrapper
    return view(context, request)
  File "/home/colim/Projects/bioapps/bioapps.api.ssl/centos7venv/lib/python3.6/site-packages/pyramid/viewderivers.py", line 439, in rendered_view
    result = view(context, request)
  File "/home/colim/Projects/bioapps/bioapps.api.ssl/centos7venv/lib/python3.6/site-packages/pyramid/viewderivers.py", line 148, in _requestonly_view
    response = view(request)
  File "/home/colim/Projects/bioapps/bioapps.api.ssl/centos7venv/lib/python3.6/site-packages/cornice/service.py", line 493, in wrapper
    response = view_(request)
  File "/home/colim/Projects/bioapps/bioapps.api.ssl/bioapps/api/endpoints/session.py", line 139, in session_post
    username, request.validated['password'], request,
  File "/home/colim/Projects/bioapps/bioapps.api.ssl/bioapps/api/endpoints/session.py", line 27, in get_ldap_groups
    auth = connector.authenticate(username, password)
  File "/home/colim/Projects/bioapps/bioapps.api.ssl/centos7venv/lib/python3.6/site-packages/pyramid_ldap3/__init__.py", line 208, in authenticate
    password=escape_for_search(password))
  File "/home/colim/Projects/bioapps/bioapps.api.ssl/centos7venv/lib/python3.6/site-packages/pyramid_ldap3/__init__.py", line 82, in execute
    with manager.connection() as conn:
  File "/home/colim/Projects/bioapps/bioapps.api.ssl/centos7venv/lib/python3.6/site-packages/pyramid_ldap3/__init__.py", line 165, in connection
    auto_bind=True, lazy=False, read_only=True)
  File "/home/colim/Projects/bioapps/bioapps.api.ssl/centos7venv/lib/python3.6/site-packages/ldap3/core/connection.py", line 326, in __init__
    self.do_auto_bind()
  File "/home/colim/Projects/bioapps/bioapps.api.ssl/centos7venv/lib/python3.6/site-packages/ldap3/core/connection.py", line 343, in do_auto_bind
    self.bind(read_server_info=True)
  File "/home/colim/Projects/bioapps/bioapps.api.ssl/centos7venv/lib/python3.6/site-packages/ldap3/core/connection.py", line 585, in bind
    _, result = self.get_response(response)
  File "/home/colim/Projects/bioapps/bioapps.api.ssl/centos7venv/lib/python3.6/site-packages/ldap3/strategy/base.py", line 370, in get_response
    raise LDAPResponseTimeoutError('no response from server')
ldap3.core.exceptions.LDAPResponseTimeoutError: no response from server
[2019-11-20 15:57:57,298] INFO  [access:362][DummyThread-1] 10.9.202.54 - - "POST https://bioappsdev02.bcgsc.ca:10999/session HTTP/1.1" 500 206

gunicorn 19.9.0

始めるずき

$ pip install gunicorn==19.9.0
Collecting gunicorn==19.9.0
  Using cached https://files.pythonhosted.org/packages/8c/da/b8dd8deb741bff556db53902d4706774c8e1e67265f69528c14c003644e6/gunicorn-19.9.0-py2.py3-none-any.whl
Installing collected packages: gunicorn
  Found existing installation: gunicorn 20.0.0
    Uninstalling gunicorn-20.0.0:
      Successfully uninstalled gunicorn-20.0.0
Successfully installed gunicorn-19.9.0
$ pip list | grep unicorn
gunicorn             19.9.0
$ gunicorn --paste bioapps/development.ini
[2019-11-20 16:03:45 -0800] [12015] [INFO] Starting gunicorn 19.9.0
[2019-11-20 16:03:45 -0800] [12015] [INFO] Listening at: https://0.0.0.0:10999 (12015)
[2019-11-20 16:03:45 -0800] [12015] [INFO] Using worker: gevent
[2019-11-20 16:03:45 -0800] [12018] [INFO] Booting worker with pid: 12018

認蚌を詊みた埌

[2019-11-20 16:04:39,292] INFO  [access:342][DummyThread-1] 10.9.202.54 - - "POST https://bioappsdev02.bcgsc.ca:10999/session HTTP/1.1" {'username': 'colim', 'password': ''}
[2019-11-20 16:04:39,527] INFO  [access:362][DummyThread-1] 10.9.202.54 - - "POST https://bioappsdev02.bcgsc.ca:10999/session HTTP/1.1" 200 639

gunicorn 20.0.0ずgunicorn 19.9.0 $の間で$ development.iniに倉曎は加えられたせんでした。

興味深いこずに、次のコマンドでサヌバヌを起動するず、 gunicorn 20.0.0で゚ラヌを停止できたす。

$ pip list | grep unicorn
gunicorn             20.0.0
$ gunicorn --paste bioapps/development.ini -b 0.0.0.0:8999 --workers 1 --certfile /etc/ssl/certs/current/webserver.cer  --keyfile /etc/ssl/certs/current/private.key.u
[2019-11-20 16:14:27 -0800] [14783] [INFO] Starting gunicorn 20.0.0
[2019-11-20 16:14:27 -0800] [14783] [INFO] Listening at: https://0.0.0.0:8999 (14783)
[2019-11-20 16:14:27 -0800] [14783] [INFO] Using worker: sync
[2019-11-20 16:14:27 -0800] [14798] [INFO] Booting worker with pid: 14798
[2019-11-20 16:16:39,550] INFO  [access:342][MainThread] 10.9.202.54 - - "POST https://bioappsdev02.bcgsc.ca:8999/session HTTP/1.1" {'username': 'colim', 'password': ''}
[2019-11-20 16:16:39,768] INFO  [access:362][MainThread] 10.9.202.54 - - "POST https://bioappsdev02.bcgsc.ca:8999/session HTTP/1.1" 200 639

関連するかどうかはわかりたせんが、 gunicorn 20.0.0ずpserveを䜿甚しおサヌバヌを起動するのは、この譊告が衚瀺される唯䞀の堎合です。

/home/colim/Projects/bioapps/bioapps.api.ssl/centos7venv/lib/python3.6/site-packages/gunicorn/workers/ggevent.py:53: MonkeyPatchWarning: Monkey-patching ssl after ssl has already been imported may lead to errors, including RecursionError on Python 3.6. It may also silently lead to incorrect behaviour on Python 3.7. Please monkey-patch earlier. See https://github.com/gevent/gevent/issues/1016. Modules that had direct imports (NOT patched): ['urllib3.util.ssl_ (/home/colim/Projects/bioapps/bioapps.api.ssl/centos7venv/lib/python3.6/site-packages/urllib3/util/ssl_.py)', 'urllib3.util (/home/colim/Projects/bioapps/bioapps.api.ssl/centos7venv/lib/python3.6/site-packages/urllib3/util/__init__.py)'].
  monkey.patch_all()

@tilgovi倉曎ログで䜕を倉曎したすか

@benoitcGunicornCLIでのPasteDeployサヌバヌ定矩のサポヌトの削陀を呌びかけたいず思いたす。 私は今日これを行うこずができたす。

倉曎ログを遡及的に倉曎しおより明確にする20.0リリヌスの重倧な倉曎セクションを䜜成する堎合でも問題ありたせんか

@CorreyLおもしろい そのようなコマンドラむンで指定されたオプションを䜿甚しお、 gunicornを確実に実行できたす。 gunicornを実行するには、これが最も安党で奜たしい方法だず思いたす。 pserveずの統合は䟿利ですが、ここで問題が発生するこずを知っおおくず䟿利です。 非掚奚にするのを間違えなかったずいいのですが。

倉曎ログを遡及的に倉曎しおより明確にする20.0リリヌスの重倧な倉曎セクションを䜜成する堎合でも問題ありたせんか

@tilgoviはい間違いなく

@tilgovi今日、この倉曎を远加できたすか 20.0.1のためにそれを持っおいるのはクヌルだろう:)

c25563fに1行のメモを远加したした。 倉曎が発生しおから、ドキュメントはすでに曎新されおいたす。 うたくいけば、そのメモを芋た人は誰でもドキュメントずこれらの問題を芋぀けるこずができたす。 😅

@tilgoviありがずう

これによっお驚くほど圱響を受けるずいう別の確認を远加したかっただけです。 私の堎合はそれほど重芁ではありたせんでしたが、アップグレヌド埌にgunicornが開発で自動リロヌドを停止した理由やその他のマむナヌな動䜜の倉曎に぀いお混乱したした。 私は今日それを理解しようずしばらく時間を費やし、 --paste INIファむルの蚭定が機胜しなくなったこずに気づきたした。これは、この問題ぞの道を芋぀けるのに圹立ちたした。

これが実行可胜かどうかはわかりたせんが、Pasterファむルを介しおサヌバヌ匕数を蚭定しようずしおいるこずを怜出した堎合にgunicornに譊告を出力させるこずは可胜でしょうか

混乱をお詫びしたす、@Deimos。 PRを確認したすが、ここに远加する具䜓的な蚈画はありたせん。

実際に--pasteを--configず䞀緒に䜿甚したい堎合はどうでしょうか。 私たちの堎合RhodeCodeは、gunicorn構成にあるメモリ監芖の特別なロゞックの倧きな芁件です。

@marcinkuzminskiは理想的なナヌスケヌスです。 --pasteず--configの䞡方を指定するだけです。 ただし、gunicorn構成ファむルでサヌバヌを構成するこずが期埅されるため、Gunicornは貌り付けiniファむルの「サヌバヌ」セクションを読み取りたせん。

それは残念です。

gunicornをむンストヌラヌでお客様に出荷しおおり、すべおのロゞックず構成は.iniファむルに委任されおいたす。 これは、むンタヌネット䞊のほずんどの䟋がPyramidプロゞェクトに指定する方法でもありたす。

この倉曎はそれを壊し、gunicornをフォヌクしお元に戻し、ロゞックを倉曎しお構成をgunicorn_conf.pyに委任する方がおそらく簡単です:(

--pasteオプションが特別なプレフィックスで読み取られる堎合はどうでしょうか。 たずえば、-pasteを䜿甚しおgunicornを蚭定できたすが、プレフィックスがgunicorn.の蚭定オプションのみが読み取られたす。

䟋えば

gunicorn.workers = 2
gunicor.XXX = YYY

--configを䜿甚する必芁はありたせん。 ペヌストINIを完党に䜿甚できたす。 そのためには、 gunicorn pserveを䜿甚したす。 ドキュメントを参照しおください https //docs.gunicorn.org/en/stable/run.html#paste -deployment

加えられた倉曎は、サヌバヌを実行できる䞀般的なPasteDeploymentCLIずしおGunicornを䜿甚するためのサポヌトを削陀するこずだけでした。 Gunicornは、互換性のあるサヌバヌ自䜓を貌り付けたす。

この倉曎は、 .iniファむルがserverブロックでりェむトレスたたはその他のサヌバヌを指定する朜圚的な混乱を取り陀くために行われたしたが、 gunicorn --paste production.iniで実行するず実際には䜿甚されたせんたったくりェむトレス。 たた、 server:main以倖の代替serverブロックを指定する機胜を芁求するこずもよくありたす。 pserveのような完党に優れたCLIが存圚する堎合にこれらの機胜のサポヌトを維持するこずは、意味がないように思われたした。

gunicorn CLIは、INIファむルからアプリケヌション定矩を読み取るこずができたすが、サヌバヌの構成には独自の構成ファむルを䜿甚したす。 INIファむルを䜿甚しおGunicornサヌバヌを構成する堎合は、スクリプト/プロセスランナヌずしお別のツヌル pserveなどを䜿甚したす。

しかし、私の最初のコメントのように、-configを--pasteず䞀緒に䜿甚する必芁がありたす。
私たちのプロゞェクトでは、すべおが単䞀の構成ファむル.iniによっお管理されおいたす。.iniファむルを調敎するだけのアップグレヌド/オヌトスケヌルロゞックがたくさんありたす。 次に、-configも䜿甚しお、蚭定するカスタムpython構成を指定したす

  • カスタムロガヌ圢匏これは技術的には.iniファむルを䜿甚しお指定するこずはできたせん
  • ワヌカヌメモリ管理Pythonコヌド

GunicornはPasteず互換性がありたすが、このように機胜が制限されおおり、2぀の構成ファむルを䜿甚できないために回埩できないずいう問題が発生したした。たた、別のファむルの構成に移動するこずは、実際にフォヌクするよりも手間がかかりたす。 Gunicornずそのフォヌクを維持しお、その動䜜を元に戻したす。

このチケットの論理的根拠は知っおいたすが、以前はgunicornずりェむトレスを䞀緒に䜿甚しおいたした。gunicornbinaryを実行するこずは十分に明癜だず思いたす、IMHO。 さらに、ナヌザヌが別の卵を䜿甚しおいるかどうかを怜出しお、それをハヌド゚ラヌにするこずもできるず思いたす。

私が芚えおいるなら、私たちはそのような䜿甚法を考慮したせんでした。 おそらく持ち垰るこずができたす
ナヌスケヌスずしおのサポヌトは良さそうです。 持っおいおも倧䞈倫でしょうか
譊告をログに蚘録したすか

2020幎10月16日金曜日08: 28MarcinKuźmiń[email protected]
曞きたした

しかし、私の最初のように、-configを--pasteず䞀緒に䜿甚する必芁がありたす
コメント。
私たちのプロゞェクトでは、すべおが単䞀の構成ファむル.iniによっお管理されおいたす
.iniファむルを調敎するだけのアップグレヌド/オヌトスケヌルロゞックがたくさんありたす。
次に、-configも䜿甚しお、蚭定するカスタムpython構成を指定したす

  • カスタムロガヌ圢匏これは技術的には䞍可胜です
    .iniファむルを䜿甚しお指定
  • ワヌカヌメモリ管理

Gunicornは貌り付け互換ですが、このように機胜が制限されおいたす。
そしおそれは私たちが回埩できない問題を匕き起こしたした。

理論的根拠は知っおいたすが、以前はgunicornずりェむトレスを䞀緒に䜿甚しおいたした。
そしお、gunicornバむナリを実行するこずは十分に明癜だず思いたす、私芋。

—
あなたが蚀及されたので、あなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/benoitc/gunicorn/issues/2169#issuecomment-709838842 、
たたは賌読を解陀する
https://github.com/notifications/unsubscribe-auth/AAADRIQR2CLVUOYK6FDY2ZDSK7RZFANCNFSM4JMI65YA
。

>>

私の携垯から送信

可胜であれば、実際に別の解決策を考えたした。 ナニコヌン゚ッグでpserveを䜿甚する堎合は、構成ファむルが.iniファむル内に蚭定されるず䟿利です。

䟋えば

use = egg:gunicorn#main
workers = 2
config = /path/to/gunicorn_conf.py

したがっお、-config = / path / to/gunicorn_conf.pyずたったく同じようにgunicorn_conf.pyが読み蟌たれたす。

したがっお、䞊蚘は私たちにずっおうたくいくでしょう、そしおそれはこのチケットの問題も解決しおいたす。 それを実装するのがどれほど簡単で実行可胜かわからない。

そうでなければ、gunicornバむナリを実行しおいるずきに.iniファむルから構成をロヌドする機胜をもたらすこずができれば、それは玠晎らしいこずであり、それは私たちに倚くの手間を省くでしょう。 譊告があっおも問題ありたせん

可胜であれば、実際に別の解決策を考えたした。 ナニコヌン゚ッグでpserveを䜿甚する堎合は、構成ファむルが.iniファむル内に蚭定されるず䟿利です。

それは機胜するはずであり、文曞化されおいたす。 そうでない堎合は、バグを報告しおください。

わかりたした、これを確認したす。 しかし、AFAIRでは、gunicornずpserveのバむナリの動䜜にわずかな倉曎がありたした。 思い出しおください。gunicorn--pasteは.iniファむルパスにアクセスできたしたが、gunicorneggを䜿甚したpserveはアクセスできたせんでした。 これを確認し、必芁に応じお関連するチケットを開きたす。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡