Domanda

Ho scritto un server di eventi HTTP ad alte prestazioni in C ++ e voglio farlo funzionare perfettamente con nginx e PHP-FPM (FastCGI). Si tratta di un frammento della mia configurazione nginx.

    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
    }

Il mio server di eventi restituisce 505 errori se c'è un evento, altrimenti si blocca, e, infine, restituisce una direttiva "Nessuno Stato CHANGE" che mi occupo con JS o quello che hai (questo è fondamentalmente la cometa). Il punto è che vorrei nginx per catturare l'errore 505 e trasmettere la richiesta PHP in modo da PHP in grado di gestire l'evento di conseguenza. Il mio server è fondamentalmente solo un hub evento, permettendo a molti molti utenti siano in grado di connettersi e vedere se ci sono nuovi eventi. Se c'è un evento, PHP gestisce la distribuzione eventi, incluse le autorizzazioni e altre cose volatili.

Il problema è che nginx non passa il POST (o GET) le variabili che sono stati passati a * .eve, a backend.php. Ora Presumo che questo è di progettazione (a causa della direttiva error_page), ma ho pensato che ci deve essere un modo per farlo funzionare. Il mio server gira su 9001, PHP-FPM gira su 9000. Tutte le idee?

È stato utile?

Soluzione

Ho risolto il problema semplicemente ricostruendo la versione più recente di nginx. La configurazione, così come il POST e GET inoltro funziona perfettamente. Stranezze.

Altri suggerimenti

Il server può restituire una risposta con l'intestazione X-Accel-Redirect indicando un URL backend. In questo caso nginx farà la richiesta all'URL e restituire la risposta indietro per l'utente. No 30 [12] reindirizza, proprio come se l'utente ha richiesto l'URL, in primo luogo.

http://kovyrin.net/ 2006/11/01 / nginx-x-Accel-reindirizzamento-php-rails /
Google per altri esempi.

Questa è nginx specifica, ma l'idea è anche su lighttpd con l'intestazione X-Sendfile.

Io non ci conterei POST parametri della richiesta di passaggio qui. parametri specchio POST in GET quelli di X-Accel-reindirizzamento ritorno, se il back-end può accettare che. error_page non passerà alcuna davvero.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top