Страница 1 из 1

Nginx + php_fastcgi вешают curl запросы с этого же хоста

Добавлено: 23 сен 2014, 19:30
sway
Ситуация такая:
Делаю тесты для api. Чтобы все было достоверно - использую curl для отправки запросов. Но есть проблема - 3-4 запроса последовательно отправляются без проблем, но 5й вешается на очень длительное время с большим шансом улететь в gateway timeout. Судя по логам - делаются лишние запросы на зависший url. 100% на том url нет никаких редиректов, а сам curl запрос вызывается с опциями
CURLOPT_FOLLOWLOCATION => false,
CURLOPT_MAXREDIRS => 0

В результате исследования проблемы выяснилось, что связки apache+php и nginx+apache+php не страдают этой проблемой.
Перебрал все доступные версии серверов - nginx + php стабильно виснут.
Настройками curl жонглировал - толку нет.
Основное подозрение падает передачу запроса из nginx в php_fastcgi.

OpenServer: 5.1.1
Windows 7 x64

Есть идеи как это исправить?

Добавлено: 23 сен 2014, 20:01
Максим
sway писал(а):Есть идеи как это исправить?
Увеличить количество CGI потоков в настройках программы, раздел Разное.

Добавлено: 23 сен 2014, 21:31
sway
Не решает проблему. Пробовал от 1 до 10 потоков. К тому же судя по диспетчеру задач - ни один из потоков больше 2% процессора не использовал. Других запросов одновременно в зависающим также небыло.

Также пробовал ставить задержки между запросами. Тоже не решило проблему.

Добавлено: 08 ноя 2014, 03:14
Максим
sway, включите расширенное логирование (дебаг) в Nginx и PHP и всё сразу же станет понятно. Не вижу проблемы определить причину зависона или по крайней мере его источник.

Добавлено: 10 ноя 2014, 15:53
sway
Я логи/дебаг в первую очередь включал и смотрел. В nginx acess.log видно что запрос пришел, но в пхп он не попал.
Проблема где-то в проксировании из nginx в php и она не отображается в логах. Причем после зависания и gateway timeout, nginx вешается полностью и не выдает на все запросы gateway timeout. PS: сессии я не использую поэтому незакрытая сессия тут не при чем.
Сейчас использую связку nginx+apache+php - все работает нормально.