問題タブ [psgi]

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.

0 投票する
1 に答える
168 参照

perl - Plack::Builder で「ホスト」をマウントします

Plack::Builderの概要とこの回答には次のように書かれています。

私は次のことを試しました:

しかし、それを実行しようとすると、plackup次のようになりました。

/tmp/app.psgi の読み込み中にエラーが発生しました: パスは、/home/cw/.anyenv/envs/plenv/versions/5.20.3/lib/perl5/site_perl/5.20.3/Plack/Builder.pm で / で始まる必要があります108行目。

なにが問題ですか?

0 投票する
1 に答える
499 参照

apache - uWSGI + Apache で Dancer アプリが失敗するのはなぜですか?

私のDancerアプリは、uWSGI (2.0.7) + Apache (2.4.10) の組み合わせで失敗しますが、他の環境 (uWSGI + nginx、Starman + Apache、Dancer 独自の開発サーバー) では自由に実行されます。ログに意味のある情報が見つかりません。だから私は簡単なテストアプリを作りました

production.yml次に、 defaultをにコピーし、次のように作成されたものuwsgi.ymlにリンクbin/app.plします。bin/app.psgitset.ini

この ini を で uWsgi で使用できるようにし/etc/uwsgi/apps-available、 にリンクしました/etc/uwsgi/apps-enabled

サービスを再開uwsgiしました。

次に、Apache (2.4.10) モジュールの場合mod-proxy-uwsgi、virtualhost conf にいくつかの行を追加しました。

ここに設定する必要があるように感じuWSGIModifier1 5ますが、場所と方法がわかりませんでした。

Apache を再起動すると、「内部サーバー エラー」が発生しました。uwsgi ログには、次のように表示されます。

この「使用できない修飾子が要求されました」とは何ですか?

apache error.log にはエントリがなく、access.log にはエントリがありますが、ステータス 500 以外の情報はありません。

このような動作は上記の手順で再現できるので、この組み合わせの何が問題なのかを理解していただければ幸いです。

0 投票する
2 に答える
472 参照

perl - マルチサイト対応の PSGI アプリケーション開発

Plack::Builderでは、複数のホストをマウントできます。たとえば、次のスニペットのようなものです。

例えば

  • は、、、...load_site_namesのようなサイトのリストを返します。http://example.comhttp://some.other.site.com
  • すべての「仮想ホスト」は同じものを使用しますSome::PsgiFramework::MyApp
  • 設定が違うだけ

私は正確に上記を必要としています - 異なる(トラフィックの少ない)サイトのハンダートに展開する必要がある1つの単純なWebアプリを開発する必要があり、サイトごとに異なるPSGIサーバーをセットアップしたくない.

ただし、Plack 自体の作成者は ( Plack::Requestで)と述べています。

このモジュールは、アプリケーション開発者 (エンド ユーザー) ではなく、Plack ミドルウェア開発者および Web アプリケーション フレームワーク開発者によって使用されることを意図していることに注意してください。

Plack::Request を使用して Web アプリケーションを直接作成することは確かに可能ですが、お勧めしません: mod_perl の Apache::Request: でそうするようなものですが、レベルが低すぎます。

フレームワークではなく Web アプリケーションを作成している場合は、PSGI ( http://plackperl.org/#frameworks )をサポートする Web アプリケーション フレームワークの 1 つを使用するか、HTTP::Engine などのモジュールを参照することをお勧めします。 PSGI の上に高レベルのリクエストおよびレスポンス API を提供します。

そして、これが問題です。

MetaCPAN でさまざまな PSGI ベースのフレームワークの多くをチェックしました。そして、AFAIKはそれぞれシングルトンベースです。たとえば、同じapp.psgi.

質問は次のとおりです。

  • MetaCPAN (またはドキュメント) で何かを見逃していました。ここ 、?app.psgi
  • または私は開発を余儀なくされていJust Another My Own PSGI Frameworkますか?(正直、触媒は重すぎてチェックしていません)
  • それとも「取り付け」をよく理解していませんか?
0 投票する
1 に答える
683 参照

perl - ダンサー固有のリクエスト ID

Dancer に一意のリクエスト ID はありますか?

Apache には mod_unique_id があります: http://httpd.apache.org/docs/current/mod/mod_unique_id.html

PSGI/Plack にはミドルウェア モジュールがあります: http://search.cpan.org/~bayashi/Plack-Middleware-RequestId-0.02/lib/Plack/Middleware/RequestId.pm

しかし、私が見逃したダンサーにネイティブなものはありますか?

0 投票する
1 に答える
86 参照

perl - PSGI - 各 prefork-child のコンストラクター

分岐後の各子のコンストラクターについて質問があります。例えば:

このコードは機能していますが、これは悪い習慣です。そのようなものを作成したいと思います

Starman や Feersum のような prefork-server でどのように機能するかを誰かが説明してくれることを願っています (しかし、ある男 "Audrey Tang" は、Feersum はそれは良い考えではないと教えてくれました)

だから - あなたの答えに感謝します

0 投票する
0 に答える
89 参照

perl - 応答なしで PSGI 接続を閉じる方法は?

$env->{'psgix.io'}私のアプリケーションは、さらなる WebSocket 処理のために別のプロセスにハンドルを渡したいと考えています。UNIX ソケットdup()のハンドルを介して渡すので、アプリケーションから PSGI サーバーに応答を返す必要はありません。しかし、アプリケーションからの応答を返さずに、黙って接続を閉じるオプションはありません。何も返さないと、PSGI サーバーは満足せず、「500 Internal Server Error」をログに記録します。のようなコード参照だけを返すとsub {}、Twiggy は満足しますが、uWSGI はそうではありません。他の有効な PSGI 回答は、WebSocket プロトコルを破ります。

WebSocketハンドシェイクの最後の部分をPSGIの回答として生で処理して返そうとしdup()ましたが、uWSGIでは機能しましたが、Twiggyでは機能しませんでした。

私はさまざまな PSGI/WebSocket 実装を調べましたが、次のいずれかを実行します。

  1. WebSocket が閉じられるまで、ハンドラーからまったく戻らないでください。
  2. ある種のを返しsub {}ます。

PSGIプロトコルで応答を返さず、静かに接続を閉じる正しい方法は何ですか?

更新: Twiggy がPSGI キャンセルメッセージ[]として使用しているようです。同じことを行うための私のパッチは正常にマージされました。uwsgi