Браузеры ожидают максимального времени активности активности для домашней страницы Symfony.
Если я отключу Keepalive (apache), все в порядке.Заголовок ответа "Connection: Close
" получен, и браузер перестает ждать.Общее время около 200 мс.
Если я включаю Keepalive (apache), ответ заголовков:
Соединение: Keep-Alive
Keep-Alive: timeout = 5, max= 500
Transfer-Encoding: chunked
Нет заголовка 'Content-Encoding
'
Нет заголовка 'content-length
' (сохранить в живых)
Php.ini:
output_buffering = 4096
Я использую php-fpm на удаленном сервере.Вот конфигурация apache:
ProxyPassMatch ^ / (. .php (/ .)?) $ Fcgi: //192.168.1.1: 9000 / var / php-fpm /www / public / $ 1
Браузер получил данные, но ждет 5 с.Похоже, что браузер ожидает окончания порции данных (последний пакет размером 0).
Веб-сервер apache2.4.6, код php7.1.8 / synfony 4. Тот же код в среде разработки работаетнормально (другой хост).
Время выполнения в логах apache составляет около 20 мс (не 5 с!).Браузер ожидает окончания передачи и останавливается с тайм-аутом keepalive.Если для таймаута keepalive установлено значение 20 с, браузеры ждут 20 с после получения данных.
Показатель производительности Symfony «Общее время выполнения» составляет 18 мс (в режиме разработки).Временная шкала Internet Explorer (F12) показывает 5,35 мс с 5 с для «времени отклика» в конце детализации.
Если я получаю простую страницу (phpinfo), у меня нет проблемы, это с домашней страницей Symfony итолько с производственным сервером.
Простой тест с curl (без ajax, js ...) показывает проблему: данные получены полностью (</html>
), но curl все еще ждет 5s и пишет сообщение:
передача закрыта с оставшимися незавершенными считанными данными
вместо:
Соединение № 0 с хостом xxxxxxx осталось без изменений
Если я отключаю виртуальный хост ssl apache и тестирую с помощью Fiddler, Fiddler показывает это сообщение об ошибке, когда я нажимаю для декодирования тела ответа:
тело фрагмента не завершается должным образом с порцией 0 размера
Есть ли проблема php chunk с php / synfony?
Большое спасибо.