Назад | Перейти на главную страницу

nginx отправляет неполный ответ

Без перезапуска или модификации конфигурации nginx иногда отправляет неполные ответы. Сегодня я могу хорошо воспроизвести, но до сих пор не знаю, что не так и как исправить.

Я помещаю файл размером 5 МБ в путь к местоположению / псевдониму сайта, который настроен для использования nginx. Нет php5-fpm, модулей и т.д., только nginx для обслуживания статических файлов.

При тестировании нет другого пользователя, обращающегося к серверу, нет доступа по http, кроме моих тестовых запросов.

Загрузка не выполняется, и Google Chrome показывает в журнале трафика, что было 2 запроса, хотя я поместил URL-адрес http для загрузки только ОДИН РАЗ, и не было перенаправления или другого второго запроса, инициированного мной.

Та же проблема и на сервере access.log:

ТЕСТ1

[14 / May / 2014: 14: 06: 53 +0200] "GET /dev/test_test.m4v HTTP / 1.1" 206 1 "-" "Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 537.36 (KHTML, например Gecko) Chrome / 32.0.1700.107 Safari / 537.36 "

[14 / May / 2014: 14: 06: 53 +0200] "GET /dev/test_test.m4v HTTP / 1.1" 200 130680 "-" "Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 537.36 (KHTML, например Gecko) Хром / 32.0.1700.10

[14 / May / 2014: 14: 07: 15 +0200] "GET /dev/test_test.m4v HTTP / 1.1" 206 1 "-" "Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 537.36 (KHTML, например Gecko) Chrome / 32.0.1700.107 Safari / 537.36 "

[14 / May / 2014: 14: 07: 15 +0200] "GET /dev/test_test.m4v HTTP / 1.1" 200 114684 "-" "Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 537.36 (KHTML, например Gecko) Хром / 32.0.1700.10

Вы можете видеть, что всегда есть один запрос с размером ответа = 1 и другой со смешанным размером, но> 1. Однако результат в браузере всегда один и тот же. => неверный ответ, загрузка не удалась.

Чтобы убедиться, что это не связано с http status / response 206, я добавляю max_ranges 0; в конфиг и повторите -> test2.

ТЕСТ2

[14 / May / 2014: 14: 11: 36 +0200] "GET /dev/test_test.m4v HTTP / 1.1" 200 152460 "-" "Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 537.36 (KHTML, например Gecko) Chrome / 32.0.1700.107 Safari / 537.36 "

[14 / May / 2014: 14: 11: 38 +0200] "GET /dev/test_test.m4v HTTP / 1.1" 200 142296 "-" "Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 537.36 (KHTML, например Gecko) Chrome / 32.0.1700.107 Safari / 537.36 "

Тот же результат в браузере. Всегда сбой при загрузке / запросе, и размер в access.log всегда разный, как и размер случайного фрагмента или размера ответа.

статус сервера: iowait, RAM, cpu почти простаивают. Нет высокой нагрузки или ограничений.

Это известная проблема или ошибка, или Вы знаете, как это исправить?

При таком простом сценарии я почти уверен, что у вас есть брандмауэр, устройство IDS / IPS или что-то еще перед вашим сервером nginx, мешающее загрузкам. В случае сомнений обратитесь к своему интернет-провайдеру.