Frage

Ich habe einen Hochleistungs-HTTP-Ereignisserver in C ++ geschrieben und möchte, dass sie mit Nginx und PHP-FPM (FASTCGI) fehlerfrei funktioniert. Dies ist ein Ausschnitt meiner Nginx -Konfiguration.

    location ~ \.eve$ {
        gzip off;
        proxy_redirect off;
        proxy_buffering off;
        proxy_pass http://127.0.0.1:9001;
        proxy_intercept_errors on;
        error_page 505 = @fallback // this is actually BACKEND.php
    }

Mein Ereignisserver gibt 505 Fehler zurück, wenn es ein Ereignis gibt, andernfalls hängt er und schließlich eine Anweisung "No Status Change", die ich mit JS oder dem, was Sie haben (im Grunde genommen Comet), zurückgeführt werden. Der Punkt ist, dass ich möchte, dass Nginx den 505 -Fehler auffängt und diese Anfrage an PHP weiterleitet, damit PHP das Ereignis entsprechend verarbeiten kann. Mein Server ist im Grunde nur ein Ereigniszentrum, sodass viele, viele Benutzer eine Verbindung herstellen und prüfen können, ob neue Ereignisse vorhanden sind. Wenn es eine Veranstaltung gibt, übernimmt PHP die Ereignisverteilung, einschließlich Berechtigungen und anderer flüchtiger Dinge.

Das Problem ist, dass Nginx die Postvariablen, die an *.eve, an Backend.php übergeben wurden, nicht übergeben. Jetzt nehme ich an, dass dies von Design (aufgrund der ERROR_PAGE -Direktive) ist, aber ich dachte mir, dass es eine Möglichkeit geben muss, es zum Laufen zu bringen. Mein Server läuft auf 9001, Php-FPM läuft auf 9000. Irgendwelche Ideen?

War es hilfreich?

Lösung

Ich habe das Problem behoben, indem ich einfach die neueste Version von Nginx wieder aufgebaut habe. Die Konfiguration sowie der Beitrag und die Weiterleitung funktionieren perfekt. Verrücktheit.

Andere Tipps

Ihr Server kann eine Antwort mit X-Accel-Redirect-Header zurückgeben und eine Backend-URL zeigen. In diesem Fall stellt NGINX die Anforderung an die URL vor und gibt die Antwort an den Benutzer zurück. Nr. 30 [12] leitet, so wie der Benutzer die URL überhaupt angefordert hätte.

http://kovyrin.net/2006/11/01/nginx-x-accel-redirect-php-ils/
Google für andere Beispiele.

Dies ist nginx spezifisch, aber die Idee wird in LightTPD mit X-Sendfile-Header gezeigt.

Ich würde mich nicht auf die hier bestehenden Postanfragenparameter zählen. Spiegel-Post-Parameter in Get One of X-Accel-Redirect-Rückgabe, wenn Ihr Backend dies akzeptieren kann. ERROR_PAGE passieren in der Tat keine.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top