問題タブ [uwsgi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
nginx - UWSGI_SCRIPT を使用して、nginx の uwsgi プロセスに pylons アプリを動的に追加するにはどうすればよいですか?
以下を使用して、nginx + uwsgi に単一の pylons アプリを正常にデプロイしました。
ただし、仮想ホスト 3 サイトに nginx を使用しています。
このチュートリアルと unbit のメイン uwsgi サイトの uwsgi/wiki/DynamicApps ページに基づいて、3 つの別々のポートを介して 3 つのマスター プロセス用に 3 つの別々の uwsgi init.d スクリプトを作成することなく、アプリを動的に uwsgi に追加できます。
nginx 仮想ホスト構成はチュートリアルと同じようにセットアップされていますが、UWSGI_SCRIPT 値に問題があります。app.wsgi (/var/www/sites/helloworld/app.wsgi にあります) に設定しました。スクリプト コードは次のとおりです。
しかし、このスクリプトに関する直接的な情報は見つかりません。代わりに app_wsgi.py という名前が付けられていると思われますか、それともまったく別のコードですか? そして、それはどこにあるはずですか?サイトにアクセスすると、「uWSGI エラー - wsgi アプリケーションが見つかりません」というメッセージが表示され、uwsgi.log に次のように表示されます。
python - DjangoとPython+uWSGI
命令を使用して、 Python + uWSGIを接続しようとします。
デフォルトのプロジェクトを/home/ sanya / django/pasteurlフォルダーに作成しました。しかし、私が入手したブラウザでそれを開いた
ログには次のものが含まれます。
ファイル/home/sanya/django/pasteurl/django.wsgi
私が気付いたように、それはこのアプリケーション辞書に何か問題があります
django - Nginx接続がリセットされ、uWsgiからの応答が失われました
NginxとuWsgiを介してホストされているdjangoアプリがあります。特定の非常に単純なリクエストでは、GETとPOSTで異なる動作が発生しますが、そうではないはずです。
uWsgiデーモンログ:
Nginxアクセスログ:
Nginxエラーログ:
本質的に、POSTを使用すると、どこかでNginxが応答を失いますが、GETを使用した場合はそうではありません。
誰かがそれについて何か知っていますか?
python - uWSGI + Django + Virtualenv が _functools を取得できない (インポート エラー)
OK、それで、virtualenv を使用して & せずにこれを試しました:
ほとんど何があっても、私はこれを取得します:
--home を /usr/local/lib/python/2.6 に変更すると、OS の app_wsgi.py インポートに失敗します。念のため、以下に示します。
基本的に、uWSGI に functools を認識させる方法、または正しいパスを取得する方法を尋ねています (パスは上記の出力にあります)。皆さんの助けをいただければ幸いです!!
PS Ubuntu 10.04 - uWSGI 0.9.6.5 - NGINX 0.8.53 - 仮想環境 Python 2.6.5 - 「通常 (またはシステム)」 Python 2.6.6 - Django 1.2.3
アップデート:
次のように「--module」を省略した場合、uwsgi にリクエストの受け入れを開始させることができました。
しかし今、アプリが見つからないというエラーが表示されます:
「uWSGI エラー wsgi アプリケーションが見つかりません」
私は近づいていますが、アプリをロードするために必要なモジュールを含めることができないため、アプリが見つからないため、提案をいただければ幸いです!
mod-wsgi - サブインタープリターではグローバルPythonオブジェクトの一意性は無効ですか?
id()
Python サブインタープリターの初期化 (Python/C API から) と Python関数の内部動作について質問があります。より正確には、WSGI Python コンテナー (Apache の nginx および mod_wsgi で使用される uWSGI など) でのグローバル モジュール オブジェクトの処理についてです。
次のコードは、上記の両方の環境で期待どおりに (分離して) 動作しますが、関数が実行されるプロセス/サブインタープリターに関係なく、関数が常に変数ごとに同じ値を返す理由id()
を自分で説明することはできません。
1 つのマスター プロセスと 2 つのワーカーを使用して、uWSGI でこのコードをテストしました。mod_wsgi では、プロセスごとに 2 つのプロセスと 1 つのスレッドを持つデーモン モードを使用します。一般的な出力は次のとおりです。
pid = 15278
id(A) = 139748093678128
id(a) = 139748093962360
str(a) = 1
最初のロード時、次に:
pid = 15282 id
(A) = 139748093678128
id(a) = 139748093962360
str(a) = 1
2番目に、次に
ピッド = 15278 | pid = 15282 id
(A) = 139748093678128
id(a) = 139748093962360
str(a) = 2
お互いに。ご覧のとおりid()
、クラスとクラス インスタンスの両方の (メモリの場所) は、両方のプロセス (上記の最初/2 番目のロード) で同じままですが、同時にクラス インスタンスは別のコンテキストに存在します (そうしないと、2 番目の要求が表示されます)。 「1」ではなく「2」)!
答えはPythonのドキュメントにヒントがあると思います:
id(object)
:オブジェクトの「アイデンティティ」を返します。これは、このオブジェクトの有効期間中に一意で一定であることが保証されている整数 (または長整数) です。有効期間が重複しない 2 つのオブジェクトは、同じ
id()
値を持つ場合があります。
しかし、それが本当にその理由である場合、id()
値がオブジェクトのアドレスであると主張する次のステートメントに悩まされています!
これが、サードパーティの拡張モジュールでオブジェクト参照 (ポインタ) をキャッシュする問題を解決 (またはむしろ修正)する Python/C API の「巧妙な」機能である可能性が非常に高いという事実を高く評価していますが、それでもこの動作には一貫性がないことがわかります。と... まあ、常識。誰かがこれを説明してもらえますか?
また、mod_wsgi は各プロセスでモジュールをインポートする (つまり2 回) ことに気付きましたが、uWSGI は両方のプロセスでモジュールを1回だけインポートします。uWSGI マスター プロセスがインポートを行うため、そのコンテキストのコピーを子プロセスにシードすると思います。その後、両方のワーカーが独立して動作し (ディープ コピー?)、同時に同じオブジェクト アドレスを使用しているように見えます。(また、ワーカーはリロード時に元のコンテキストに再初期化されます。)
このような長い投稿で申し訳ありませんが、十分な詳細を提供したかったのです。ありがとうございました!
xml - uWSGI xml/ini 設定オプション
uWSGI の xml/ini 構成に処理されたすべてのタグの説明はありますか? ドキュメントには、すべてのコマンド ライン オプションが xml/ini にある可能性があると書かれていますが、さらに多くのオプションがあります。特に、次の構成は適切に処理されます。
このスニペットにはapp
、ネストされたタグを含むタグがありscript
ます。ただし、これらはいずれも uwsgi のコマンド ライン パラメータではありません。
この種のタグの完全なリストはありますか? これらのオプションは ini 構成に適用できますか?
python - UWSGI での Django からのロギング
uwsgiサーバーを介してdjangoアプリを実行しており、32個のプロセスを開始しています-initスクリプトの引数は次のとおりです。
バージョンは Python 2.6.5 、Django 1.2.1、uWSGI 0.9.5.1 です。
単一のログ ファイルが必要なため、質問 641420で説明されているように、マルチプロセッシング ベースのログ ハンドラーを使用しています。
マルチロギング ハンドラーは、私が持っている簡単なテスト アプリと、manage.py runserver_plus を werkzeug で実行したときに正常に動作しますが、django と uwsgi で実行しても何もログに記録されません (ただし、uwsgi プロセスからエラーや例外は発生しません)。 .
私の wsgi ファイルは以下のとおりです。誰かが私の構成の問題を特定できたり、何が起こっているのかを説明したりできれば、私は感謝します:
django - 再起動して変更を確認しますか? チェロキー + uWSGI + Django/Pinax + Virtualenv
チェロキー + uWSGI が私の django アプリの .py ファイルへのコード変更を拾うのに問題があります。使っても
find -name "*.pyc" -delete
...効果がないようです。
django runserver で同じコードベースを実行すると、更新時に変更が即座に認識されます
Cherokee + uWSGI + Django で強制的に再起動して確実に変更を確認するにはどうすればよいですか?
python - クライアントの切断にもかかわらずリクエストを処理するWSGIサーバー? - パイソン
クライアントが切断されたときにリクエストの処理を停止しない安定した wsgi サーバーを見つける必要があります。
uWSGI または gunicorn がこの基準に適合するかどうかはわかりません。
これを追加するのを忘れました:
また、リクエストが処理される前にレスポンスを返そうとしています。
何か案は?
django-haystack - ImportError: 名前インデックスをインポートできません
初めて uwsgi を実行すると、次のエラーが表示されます: ImportError: 名前インデックスをインポートできません
uwsgi をキャンセルして再度実行すると動作しますが、サイトの速度が低下し、ランダムに 502 エラーが表示されます。django dev サーバーまたは HAYSTACK_ENABLE_REGISTRATIONS = False を使用すると、正常に動作します。
何が問題なのですか?
完全なトレースバック: