Question

J'ai écrit un serveur d'événements HTTP haute performance en C ++ et je veux le faire fonctionner parfaitement avec nginx et PHP-FPM (FastCGI). Ceci est un extrait de ma configuration 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
    }

Mon serveur d'événements retourne 505 erreurs s'il y a un événement, sinon il se bloque, et finalement retourne un « AUCUN CHANGEMENT STATE » directive que je gère avec JS ou ce que vous avez (ce qui est essentiellement la comète). Le point est que je voudrais nginx attraper la 505 erreur et transmettre cette demande à PHP, PHP peut gérer l'événement en conséquence. Mon serveur est fondamentalement juste un centre d'événements, ce qui permet beaucoup d'utilisateurs d'être en mesure de se connecter et de voir s'il y a des nouveaux événements. S'il y a un événement, PHP gère la distribution des événements, y compris les autorisations et d'autres choses volatiles.

Le problème est que nginx ne passe pas le POST (ou GET) variables qui ont été transmises à * .eve, à backend.php. Maintenant, je suppose que c'est par la conception (en raison de la directive error_page), mais je me suis dit qu'il doit y avoir un moyen de le faire fonctionner. Mon serveur fonctionne sur 9001, PHP-FPM fonctionne sur 9000. Toutes les idées?

Était-ce utile?

La solution

Je le problème résolu par la reconstruction simplement la version la plus récente de nginx. La configuration, ainsi que la transmission POST et GET fonctionne parfaitement. Étrangetés.

Autres conseils

Votre serveur peut renvoyer une réponse avec en-tête X-Accel-Redirect pointant vers une URL de back-end. Dans ce cas, nginx fera la demande à l'URL et renvoyer la réponse à l'utilisateur. N ° 30 [12] réoriente, comme si l'utilisateur a demandé l'url en premier lieu.

http://kovyrin.net/ 2006/11/01 / nginx-x-Accel-redirect-php-rails /
Google pour d'autres exemples.

Ceci est nginx spécifique, mais l'idée est en vedette dans lighttpd avec en-tête X-Sendfile.

Je ne compterais pas sur les paramètres de requête POST en passant ici. paramètres Mirror POST dans les GET de X-Accel-Redirect retour, si votre backend peut accepter. error_page ne passera pas tout en effet.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top