2016-01-19 7 views
5

私のDancerアプリは、他の環境(uWSGI + nginx、Starman + Apache、Dancer自身のdev-server)で自由に動作しながら、uWSGI(2.0.7)+ Apache(2.4.10)の組み合わせで失敗します。意味のある情報はログに記録されていません。これは/etc/uwsgi/apps-availableでuWsgiために利用可能なINIメイドなぜダンサーアプリがuWSGI + Apacheで失敗するのですか?

[uwsgi]                                            
plugins = psgi                                          
socket = 127.0.0.1:3033                                       
uid  = www                                          
gid  = www-data                                         
chdir  = /home/www/apps/tset/bin/                                     
psgi  = app.psgi                                         
processes = 1                                          
master = true 

は、/etc/uwsgi/apps-enabledにそれをリンクさ:だから私はこのようなtset.iniを作成し、uwsgi.ymlに簡単なテストアプリケーションなどの

$ dancer -a tset 

そして、コピーされたデフォルトproduction.ymlを作っbin/app.psgibin/app.plをリンク。

再起動uwsgiサービス。その後

は、Apache(2.4.10)モジュール用 mod-proxy-uwsgiは私のバーチャルホストのconfに数行を追加しました:

ProxyPass /adm/y uwsgi://127.0.0.1:3033/ 

私はここにuWSGIModifier1 5を設定する必要がありますが、考え出していなかったように感じるので、これは、最も脆弱なポイントですどこでどのように?

Apacheを再起動し、「内部サーバーエラー」が発生しました。 uwsgiログでは、私はちょうど参照してください:

Tue Jan 19 02:10:36 2016 - spawned uWSGI worker 1 (pid: 21712, cores: 1) 
Tue Jan 19 02:10:56 2016 - -- unavailable modifier requested: 0 -- 
Tue Jan 19 02:24:44 2016 - -- unavailable modifier requested: 0 -- 
Tue Jan 19 02:27:14 2016 - -- unavailable modifier requested: 0 -- 
Tue Jan 19 02:27:17 2016 - -- unavailable modifier requested: 0 -- 

この "unavailable modifier requested"とは何ですか?何が間違っている、Apacheのerror.logには

のaccess.logに、何もエントリーされていないエントリですが、状況に過ぎない、他の情報500

このような挙動は、上記の手順と再現性があるので、私はあなたが把握願っていますこの組み合わせでは?

答えて

3

ここにuWSGIModifier1 5を設定する必要があると感じましたが、どこでどのように設定したのでしょうか?

はい、そうです。あなたは5にmodifier1を設定する必要がありますが、uwsgi docsはmod_proxy_uwsgiについてこう述べています。

これはすぐに修正されますけれども、現在のモジュールは、修飾子を設定する能力を欠いています。 、あなたがその問題を解決するには(供給されていない場合uWSGIは修飾子0を使用します)、このメソッドを使用してuWSGIインスタンスに

を修飾子を渡すことはできません、あなたはmod_uwsgiに移動するかの修飾を変更することができることを意味し

plugins = 0:psgi 

代わりの

plugins = psgi 
+0

遅れて申し訳ありませんが:PSGIを使用して、ロードされます。これは良いヒントだったし、 '0:psgi'に移動した後、少し進歩しました。 uwsgiのログでは、 '--- perlアプリケーションを見つけることができません---'となり、別の面倒な行 '[pid:5757 | app:-1 | req:-1/1] 212.7.22.161(){66}が1511バイト] [Sat Jan 23 00:07:15 2016] GET/adm/z/=> 0ミリ秒で21バイトを生成しました(HTTP/1。1 500)2つのヘッダーが83バイト(コア0のスイッチ0) 'ここで私は、その共振は21バイトであり、「内部サーバーエラー」の長さは何かを見ています。 Apacheの下でPerlアプリケーションが見つからない理由は何ですか? –

+0

www-data usesrに '@ INC'と同じものがないことがわかりました。そのため、Perlアプリが見つからないのです。 Apache2でもuwsgiが動いています。ありがとうございました! –

関連する問題