Логотип   Простое и понятное управление
  Уникальные возможности по настройке
  Open Server скачали уже 1 017 145 раз!

Форум

Добро пожаловать, Гость!

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

Обсуждение проблем в работе программного комплекса
sway
Сообщения: 12
C нами: 3 года 4 мес

Непрочитанное сообщение sway » 23 сен 2014, 19:30

Ситуация такая:
Делаю тесты для 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

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

Аватара пользователя
Максим
Сообщения: 4868
C нами: 5 лет 11 мес
Контакты:

Непрочитанное сообщение Максим » 23 сен 2014, 20:01

sway писал(а):Есть идеи как это исправить?


Увеличить количество CGI потоков в настройках программы, раздел Разное.

sway
Сообщения: 12
C нами: 3 года 4 мес

Непрочитанное сообщение sway » 23 сен 2014, 21:31

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

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

Аватара пользователя
Максим
Сообщения: 4868
C нами: 5 лет 11 мес
Контакты:

Непрочитанное сообщение Максим » 08 ноя 2014, 03:14

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

sway
Сообщения: 12
C нами: 3 года 4 мес

Непрочитанное сообщение sway » 10 ноя 2014, 15:53

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


Вернуться в «Ошибки Open Server»

Кто сейчас на конференции

Сейчас этот форум просматривают: Yahoo [Bot] и 2 гостя