Pregunta

escribí un servidor HTTP evento de alto rendimiento en C ++ y quiero hacer que funcione sin problemas con nginx y PHP-FPM (fastcgi). Este es un fragmento de mi configuración de 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
    }

Mi servidor de eventos devuelve 505 errores si hay un evento, de lo contrario, se cuelga, y finalmente devuelve una directiva "NO CAMBIO DEL ESTADO" que manejo con JS o lo que sea (esto es básicamente un cometa). La cuestión es que me gustaría nginx para detectar el error 505 y trasladar dicha solicitud a PHP PHP por lo que puede controlar el evento en consecuencia. Mi servidor es básicamente un centro de eventos, permitiendo que muchos muchos usuarios puedan conectarse y ver si hay nuevos eventos. Si hay un evento, PHP se encarga de la distribución de eventos, incluidos los permisos y otras cosas volátil.

El problema es que nginx no está pasando el POST (o GET) las variables que se han pasado a * .EVE, a backend.php. Ahora supongo que esto es por diseño (debido a la directiva error_page), pero me di cuenta de que tiene que haber alguna manera de hacer que funcione. Mi servidor se ejecuta en 9001, PHP-FPM se ejecuta en 9000. ¿Alguna idea?

¿Fue útil?

Solución

He arreglado el problema simplemente la reconstrucción de la versión más reciente de nginx. La configuración, así como la POST y GET reenvío funciona perfectamente. Rareza.

Otros consejos

El servidor puede devolver una respuesta con la cabecera X-Accel-redirección apuntando hacia una dirección URL de servidor. En este caso nginx hará la solicitud a la URL y devolver la respuesta de vuelta al usuario. N ° 30 [12] vuelve a dirigir, al igual que si el usuario solicita la dirección URL en el primer lugar.

http://kovyrin.net/ 2006/11/01 / nginx-x-Accel-redirección-php-rieles /
Google para otros ejemplos.

Este es nginx específica, pero la idea se presenta en lighttpd con cabecera X-Sendfile.

Yo no contaría con los parámetros de petición POST que pasan aquí. Espejo parámetros de Correos en los GET de retorno X-Accel-redirección, si su back-end puede aceptar eso. error_page no pasará ningún hecho.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top