Die Anweisung 'uwsgi_modifier1 30' entfernt SCRIPT_NAME nicht wie beschrieben von PATH_INFO

8

Dies ist meine virtuelle nginx-Host-Konfiguration.

%Vor%

Dies ist der Quellcode meiner WSGI-Anwendung.

%Vor%

Ich serviere meine WSGI-Anwendung mit diesen beiden Befehlen:

%Vor%

Dies ist die Ausgabe, die ich sehe, wenn ich versuche, meine Webanwendung zu besuchen.

%Vor%

Da ich uwsgi_modifier1 30; in meiner nginx virtuellen Host-Konfiguration erwähnt habe, erwartete ich, dass PATH_INFO nur '/bar' ist, wie in den folgenden zwei URLs erklärt:

Zitieren des relevanten Teils aus dem ersten Artikel:

  

Die Option uwsgi_modifier1 30 legt den uWSGI-Modifizierer UWSGI_MODIFIER_MANAGE_PATH_INFO fest. Dieser Änderungswert pro Anforderung weist den uWSGI-Server an, den PATH_INFO-Wert neu zu schreiben und SCRIPT_NAME daraus zu entfernen.

Zitieren des relevanten Teils aus dem zweiten Artikel:

  

Standard-WSGI-Anfrage, gefolgt vom HTTP-Anfragetext. Der PATH_INFO wird automatisch geändert und SCRIPT_NAME wird daraus entfernt.

Aber ich sehe, dass mein PATH_INFO als '/foo/bar' intakt bleibt. Der SCRIPT_NAME-Teil, d. H.% Co_de%, wurde nicht daraus entfernt. Warum?

    
Lone Learner 25.03.2014, 17:31
quelle

1 Antwort

11

Nach dem Lesen von Ссылка habe ich verstanden, dass die Verwendung von uwsgi_modifier1 30; veraltet ist.

So habe ich das Problem gelöst.

Zuerst habe ich die Behandlung von SCRIPT_NAME in nginx entfernt, indem ich diese beiden Zeilen entfernt habe:

%Vor%

Die resultierende nginx-Konfiguration sah folgendermaßen aus:

%Vor%

Dann habe ich nginx neu gestartet und die SCRIPT_NAME-Behandlung in uwsgi mit den Optionen --mount und --manage-script-name wie folgt durchgeführt.

%Vor%

Jetzt bekomme ich die erwartete Ausgabe.

%Vor%     
Lone Learner 25.03.2014, 18:00
quelle

Tags und Links