タグ付けされた質問 「gunicorn」

11
(13:権限が拒否されました)アップストリームへの接続中に:[nginx]
NginxとGunicornでDjangoプロジェクトを構成しています。 gunicorn mysite.wsgi:application --bind=127.0.0.1:8001Nginxサーバーのポートにアクセスしているときに、エラーログファイルに次のエラーが表示されます。 2014/05/30 11:59:42 [crit] 4075#0:* 6 connect()to 127.0.0.1:8001 failed(13:Permission denied)while connecting to upstream、client:127.0.0.1、server:localhost、リクエスト:「GET / HTTP / 1.1」、アップストリーム:"http://127.0.0.1:8001/"、ホスト:「localhost:8080」 以下は私のnginx.confファイルの内容です。 server { listen 8080; server_name localhost; access_log /var/log/nginx/example.log; error_log /var/log/nginx/example.error.log; location / { proxy_pass http://127.0.0.1:8001; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $http_host; } } HTMLページで取得してい502 Bad Gatewayます。 私はどんな間違いをしていますか?

13
Gunicornワーカーのタイムアウトエラー
私は3人のワーカーと30人のワーカー接続を使用し、イベントレットワーカークラスを使用してgunicornをセットアップしました。Nginxの背後でセットアップされます。いくつかのリクエストごとに、ログにこれが表示されます。 [ERROR] gunicorn.error: WORKER TIMEOUT (pid:23475) None [INFO] gunicorn.error: Booting worker with pid: 23514 なぜこうなった?何がうまくいかないのかをどうやって理解できますか? ありがとう
182 gunicorn 

4
1つのFlaskプロセスが同時にいくつのリクエストを受け取るのですか?
私はFlaskを使用してアプリを構築していますが、WSGIについてはあまり知りませんが、それはHTTPベースのWerkzeugです。Gunicornと4つのワーカープロセスでFlaskアプリケーションのサービスを開始すると、4つの同時リクエストを処理できることになりますか? 私は同時リクエストを意味し、1秒あたりのリクエストやその他のものではありません。
138 python  flask  wsgi  gunicorn 

4
ソース変更時のgunicorn自動リロード
最後に、開発環境をrunserverからgunicorn / nginxに移行しました。 runserverのオートリロード機能をgunicornに複製すると、ソースが変更されたときにサーバーが自動的に再起動するので便利です。そうでない場合は、を使用してサーバーを手動で再起動する必要がありkill -HUPます。 手動による再起動を回避する方法はありますか?

1
正確にはpre-fork Webサーバーモデルとは何ですか?
Webサーバーが自身をpre-fork Webサーバーとして説明する場合、それが正確に何を意味するのか知りたいです。RubyのユニコーンやPythonのgunicornなど、いくつかの例があります。 より具体的には、これらは質問です: このモデルはどのような問題を解決しますか? pre-fork Webサーバーを最初に起動するとどうなりますか? リクエストはどのように処理されますか? また、ユニコーン/ユニコーンに関するより具体的な質問: (g)unicornで実行したいwebappがあるとしましょう。初期化時に、webappはいくつかの初期化(たとえば、追加のデータベースエントリの入力)を行います。(g)unicornを複数のワーカーで構成する場合、初期化は複数回実行されますか?

4
gunicornとnginxを使用したDjangoのデプロイ
これは幅広い質問ですが、私は標準的な答えを得たいと思います。私が使用してサイトに展開しようとしているgunicornとnginxのでDjangoに。たくさんのチュートリアルを読んだ後、私は成功しましたが、私が従った手順が問題なくサイトを運営するのに十分であるか、あるいはそれを行うためのより良い方法があるかどうかはわかりません。その不確実性は迷惑です。 だから私は初心者のために非常に詳細でよく説明された答えを探しています。私が知っていることと私が知らないことをあまり説明したくありません。なぜなら、これは答えを少し歪める可能性があり、他の人々はあなたの答えからより少ない程度で利益を得る可能性があるからです。しかし、私が言及してもらいたいいくつかのことは次のとおりです。 どの「セットアップ」が最も効果的だと思いますか?virtualenvを使用して、Djangoプロジェクトをこの環境内に移動しましたが、仮想環境用のフォルダーとプロジェクト用のフォルダーがある別のセットアップを見ました。 複数のサイトを単一のサーバーでホストできるように設定するにはどうすればよいですか? なぜ一部の人が使用gunicorn_django -b 0.0.0.0:8000を提案し、他の人が提案するのgunicorn_django -b 127.0.0.1:8000ですか?後者をAmazonEC2インスタンスでテストしましたが、前者が問題なく機能している間は機能しませんでした。 nginxの設定ファイルの背後にあるロジックは何ですか?大幅に異なる構成ファイルを使用したチュートリアルが非常に多いため、どちらが優れているか混乱しています。たとえば、使用する人もいれば、を使用する人alias /path/to/static/folderもいroot /path/to/static/folderます。たぶん、あなたはあなたの好みの設定ファイルを共有することができます。 なぜ我々は間のシンボリックリンクを作成しますsite-availableとsites-enabledでは/etc/nginx? いくつかのベストプラクティスはいつも歓迎されています:-) ありがとう

5
Alpine Dockerコンテナー内のFlaskアプリのGunicorn execで発生した「OSError:libc not found」に対処する方法
私はMiguel Grinbergの巨大なチュートリアルのMicroblogアプリに基づいたFlaskアプリケーションに取り組んでいます。コードはここにあります: https //github.com/dnilasor/quickgig。リンクされたMySQL 5.7コンテナを使用して動作するDocker実装があります。今日、Flask-Adminモジュールを使用して管理ビュー機能を追加しました。「flask run」を介してFlaskサーバーのローカル(OSX)で美しく機能しますが、新しいDockerイメージ(python:3.8-alpineに基づく)をビルドして実行すると、ブート時にOSError: libc not foundエラーが発生してクラッシュします。不明なライブラリを示します 追加すると、Gunicornがアプリを提供できないようです。クラスメートと私は困惑しています! 私はもともとpython:3.6-alpineベースイメージを使用してエラーを取得したので、3.7と3.8で試してみたが役に立たなかった。私はまた、PyMySQLを冗長に追加していることに気付きました。そして再び明示的にdockerfileで仕様なしで。requirements.txtエントリを削除しました。また、Flask-Adminのバージョン番号を増やしてみました。上下。また、コンテナーの起動に失敗する原因となる複数の移行ファイルを見たので、データベースの移行をクリーンアップしてみました(確かに、これはSQLiteを使用している場合です)。これで、移行ファイルは1つだけになり、スタックトレースに基づいて、flask db upgrade問題なく動作するように見えます。 私がまだ試していないことの1つは、別のベースイメージ(最小限のものではないですか?)です。すぐに試して、これを更新できます。しかし、この問題は私にとって非常に神秘的であり、他の誰かがそれを見たことがあるかどうか尋ねる時がきたと思った:) 潜在的に関連があるように見えるこのソケットのバグを見つけましたが、Python 3.8で完全に修正されるはずでした。 また、私はここで循環インポートに関するいくつかのアドバイスに従い、内部に管理コントローラー機能をインポートしましたcreate_app。 Dockerfile: FROM python:3.8-alpine RUN adduser -D quickgig WORKDIR /home/quickgig COPY requirements.txt requirements.txt RUN python -m venv venv RUN venv/bin/pip install -r requirements.txt RUN venv/bin/pip install gunicorn pymysql COPY app app COPY migrations migrations …

3
Gunicornで実行されているFlask-SQLAlchemyアプリのDB pool_sizeの選択
Gunicornで実行中のFlask-SQLAlchmeyアプリをPostgreSQLデータベースに接続していて、そのpool_size値が何であるか、また予想されるデータベース接続の数を見つけるのに苦労しています。 これは、物事がどのように機能するかについての私の理解です: Python 3.7のプロセスはメモリを共有しない 各Gunicornワーカーは独自のプロセスです したがって、各Gunicornワーカーは、データベース接続プールの独自のコピーを取得し、他のワーカーと共有されません。 Pythonのスレッドはメモリを共有します したがって、Gunicornワーカー内のすべてのスレッドは、データベース接続プールを共有します これまでのところ正しいですか?それが正しい場合、Gunicornで実行されている同期Flaskアプリの場合: データベース接続の最大数=(ワーカー数)*(ワーカーあたりのスレッド数)? そして、ワーカー内で、ワーカーよりもプールからの接続を多く使用しますか? pool_sizeスレッド数よりも大きくする必要がある理由はありますか?だから、で起動したgunicornアプリの場合は2 でgunicorn --workers=5 --threads=2 main:appなければpool_sizeなりませんか?また、ワーカーを使用し、スレッドを使用していないpool_size場合、1より大きい値を使用する理由はありますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.