2016-01-19 12 views
5

Meine Dancer App schlägt unter uWSGI (2.0.7) + Apache (2.4.10) Kombination, während es frei in anderen Umgebungen (uWSGI + nginx, Starman + Apache, Dancer eigene dev-Server) läuft. Ich finde in den Logs keine sinnvollen Informationen. Also machte ich einfachen Test app wieWarum Dancer App unter uWSGI + Apache fehlschlägt?

$ dancer -a tset 

Dann kopiert Standard production.yml in uwsgi.yml, verknüpft bin/app.pl in bin/app.psgi erstellt tset.ini wie folgt aus:

[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 

Hergestellt diese verfügbar ini für uwsgi in /etc/uwsgi/apps-available, verknüpft sie in /etc/uwsgi/apps-enabled .

Neustart uwsgi Service.

dann für Apache (2.4.10) Modul mod-proxy-uwsgi hinzugefügt paar Zeilen in mein Virtual conf:

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

Dies scheint empfindlichsten Punkt, weil ich, wie ich das Gefühl brauchen uWSGIModifier1 5 hier zu setzen, sondern aus nicht gedacht wo und wie?

Neustart Apache und bekam "Internal Server Error". In uwsgi log sehe ich nur:

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 -- 

Was ist das "nicht verfügbare Modifikator angefordert"?

In Apache error.log keine Einträge ist, in access.log sind Einträge, aber keine anderen Informationen als Status 500.

Ein solches Verhalten ist reproduzierbar mit den Schritten oben, so dass ich hoffe, dass Sie herausfinden, was falsch ist in dieser Kombination?

Antwort

3

Ich fühle mich wie ich uWSGIModifier1 5 hier einstellen muss, aber nicht herausgefunden, wo und wie?

Ja, Sie haben Recht. Sie sollten modifier1 bis 5, aber uwsgi docs sagt über mod_proxy_uwsgi:

Derzeit ist das Modul fehlt die Fähigkeit, Modifikatoren zu setzen, obwohl dies bald behoben wird.

Das bedeutet, Sie nicht Modifikator uwsgi Instanz mit dieser Methode passieren kann (uwsgi Modifier 0 verwenden, wenn sie nicht im Lieferumfang enthalten)

dieses Problem zu beheben, können Sie Modifikator bewegen, auf dem zu mod_uwsgi oder ändern PSGI geladen ist, mit:

plugins = 0:psgi 

statt

plugins = psgi 
+0

Entschuldigung für die Verzögerung. Das war ein guter Hinweis und nachdem ich zum '0: psgi 'gewechselt habe, habe ich ein paar Fortschritte gemacht. In uwsgi log ist jetzt '--- nicht in der Lage, eine Perl-Anwendung zu finden ---' und eine weitere unordentliche Zeile '[pid: 5757 | app: -1 | req: -1/1] 212.7.22.161() {66 vars im Jahr 1511 Bytes} [Sa Jan 23 00:07:15 2016] GET/adm/z/=> generiert 21 Bytes in 0 ms (HTTP/1.1 500) 2 Header in 83 Bytes (0 schaltet auf Core 0) 'Hier sehe ich, dass die Resonanz 21 Bytes ist, was ist die Länge von" Interner Server Fehler ". Hast du irgendwelche Hinweise mehr, warum Perl App hier nicht unter Apache gefunden wird? –

+0

Herausgefunden, dass www-data userr nicht dasselbe '@ INC' hatte, deshalb wurde die Perl App nicht gefunden. Also habe ich auch unter Apache2 laufen lassen. Vielen Dank! –