Я написал высокопроизводительный сервер событий HTTP на C ++ и хочу, чтобы он работал без проблем с nginx и PHP-FPM (fastcgi). Это фрагмент моей конфигурации 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
}
Мой сервер событий возвращает 505 ошибок, если есть событие, в противном случае оно зависает, и в конечном итоге возвращает директиву «НЕТ ИЗМЕНЕНИЯ СОСТОЯНИЯ», которую я обрабатываю с помощью JS или чего-то другого (это в основном комета). Дело в том, что я хотел бы, чтобы nginx перехватил ошибку 505 и направил этот запрос в PHP, чтобы PHP мог соответствующим образом обработать событие. Мой сервер в основном просто концентратор событий, позволяющий многим многим пользователям иметь возможность подключаться и видеть, есть ли какие-либо новые события. Если есть событие, PHP обрабатывает распространение события, включая разрешения и другие нестабильные вещи.
Проблема в том, что nginx не передает переменные POST (или GET), которые были переданы * .eve, в BACKEND.php. Теперь я предполагаю, что это сделано специально (из-за директивы error_page), но я решил, что должен быть какой-то способ заставить его работать. Мой сервер работает на 9001, PHP-FPM работает на 9000. Есть идеи?