У меня есть многочастная загрузка файла в форме с бэкэндом php.Я установил max_execution_time
и max_input_time
в php.ini на 180 и подтвердил при загрузке файла, что эти значения установлены и установлены TimeOut
180 в Apache.Я также установил
RewriteRule .* - [E=noabort:1]
RewriteRule .* - [E=noconntimeout:1]
Когда я загружаю файл 250 МБ в быстром соединении, он работает нормально.Когда у меня медленное соединение или кондиционер сетевого соединения, чтобы искусственно замедлить его, время ожидания того же файла и в Chrome дает мне net::ERR_CONNECTION_RESET
через 1 минуту (и 5 секунд) надежно.Я также пробовал другие браузеры с таким же результатом, просто разные сообщения об ошибках.
Нет никаких признаков ошибки в любом журнале, и я пробовал как на http
, так и https
.
Что может привести к сбросу соединения для загрузки через 1 минуту?
РЕДАКТИРОВАТЬ
Теперь я также попытался создать простую форму загрузки, которая обходитлюбой фреймворк, который я использую, все еще тайм-ауты в 1 минуту.
Я также только что сделал сценарий сна, который тайм-ауты через 2 с половиной минуты, и это работает, загрузка страницы занимает около 2,5 минут, поэтому яя не вижу, как это связано с браузером или заголовком.
Я также использовал сервер с большим объемом оперативной памяти, чтобы убедиться, что он не связан с этим.Я тестировал на 3 разных серверах с разными спецификациями, но все с одной и той же базы CentOS 7.
Теперь я также обновился до PHP 7.2 и снова обновил соответствующие поля без изменений в проблеме.
EDIT 2 Технический стек для этого изолированного экземпляра:
- Apache 2.4.6
- PHP 5.6 / 7.2 (пробовал оба), имеет OPCache
- Redis 3.2.6 для хранения информации о сеансе и хранения ключа / значения (ElastiCache)
- PostgreSQL 10.2 (RDS)
Все остальное в моем техническом стеке было удалено из этой области тестирования, чтобы попытаться изолировать проблему.EFS находится в системе, но в моем наиболее изолированном тесте она просто использует EBS.
EDIT 3 Вот некоторые журналы от сетевого отладчика Chrome:
{"params":{"net_error":-101,"os_error":32},"phase":0,"source": {"id":274043,"type":8},"time":"3332701830","type":69},
{"params": {"error_lib":33,"error_reason":101,"file":"../../net/socket/socket_bio_adapter.cc","line":216,"net_error":-101,"ssl_error":1},"phase":0,"source": {"id":274043,"type":8},"time":"3332701830","type":56},
{"phase":2,"source":{"id":274038,"type":1},"time":"3332701830","type":159},
{"phase":1,"source": {"id":274038,"type":1},"time":"3332701830","type":164},
{"phase":1,"source": {"id":274038,"type":1},"time":"3332701830","type":287},
{"params": {"error_lib":33,"error_reason":101,"file":"../../net/socket/socket_bio_adapter.cc","line":113,"net_error":-101,"ssl_error":1},"phase":0,"source": {"id":274043,"type":8},"time":"3332701830","type":55},
{"params":{"net_error":-101},"phase":2,"source": {"id":274038,"type":1},"time":"3332701830","type":287},
{"params":{"net_error":-101},"phase":2,"source":{"id":274038,"type":1},"time":"3332701830","type":164},
{"params":{"net_error":-101},"phase":2,"source":{"id":274038,"type":1},"time":"3332701830","type":97},
{"phase":1,"source":{"id":274038,"type":1},"time":"3332701830","type":105},
{"phase":2,"source":{"id":274038,"type":1},"time":"3332701830","type":105},
{"phase":2,"source":{"id":274043,"type":8},"time":"3332701830","type":38},
{"phase":2,"source":{"id":274043,"type":8},"time":"3332701830","type":38},
{"phase":2,"source":{"id":274043,"type":8},"time":"3332701830","type":34},
{"params":{"net_error":-101},"phase":2,"source":{"id":274038,"type":1},"time":"3332701830","type":2},