Невозможно POST/ Загрузить файлы на страницу PHP
У меня странная проблема, когда я пытаюсь опубликовать содержимое или загрузить файлы по php на мой сервер.
После отправки формы она спит некоторое время, а затем показывает ошибку загрузки страницы. Я пробовал различное содержимое и файлы с разными размерами и обнаружил, что он может только публиковать / загружать содержимое / файлы размером ниже 530 байт! (примерно).
Я могу загрузить / опубликовать на других сайтах, так что я почти уверен, что проблема где-то на сервере.
upload_max_filesize
это 2Мpost_max_size
это 8M- апача
LimitRequestbody
3М
Сервер подключен к Интернету через соединение PPPoE, и у меня ранее были проблемы с FTP, которые я решил, уменьшив MTU сервера до 1460, однако теперь даже изменение MTU не помогает.
Когда я наблюдаю за сетью через WireShark, отображаются строки ниже (ошибка контрольной суммы и неверный протокол TCP)
1170 53.165583000 192.168.1.2 78.39.102.77 TCP 1506 [TCP segment of a reassembled PDU]
1293 57.661244000 192.168.1.2 78.39.102.77 TCP 1506 [TCP Retransmission] 60849 > http [ACK] Seq=1 Ack=1 Win=66792 Len=1452
в деталях строк говорится, что ошибка возникает в IP-пакетах и в основном из-за неверной контрольной суммы (ее 0x0000), и предполагает, что это может быть вызвано функциональностью разгрузки контрольной суммы TCP/IP.
Может ли это быть связано с моей проблемой? Если так, как я должен решить это? Должен ли я отключить контрольные суммы? Изменить NIC? Что-то другое?
Обновление: я отключил контрольную сумму ip на моем компьютере (клиенте), и теперь я вижу другое сообщение о повторной передаче TCP, которое, как подозревают, является причиной проблемы
[This frame is a (suspected) retrasmission]
под
[TCP Analysis Flags]
мне кажется ошибка затора, но я не знаю как ее решить
2 ответа
НЕ ОТКЛЮЧАЙТЕ ПРОВЕРКИ TCP.
Ваш стек TCP должен автоматически обрабатывать восстановление, хотя это снизит пропускную способность сети. Если вы можете воспроизвести ту же ошибку, то в стеке TCP отправляющей или получающей машины есть очень серьезный дефект или что-то среднее между ними. Вы запускали wireshark на обоих концах?
Вы настроили разгрузку TCP на отправляющей стороне? Вы пытались выключить его?
Является ли NAT маршрутизатором или HTTP-прокси?
Я хотел бы подумать, что некоторые из Sirjan Universoty of Technology смогут дать вам более конкретные советы о том, как их системы настроены, чем здесь, на сервере.
Я догадался, что проблема в перегруженности tcp, поэтому я следил за настройкой параметров tcp и увеличил tcp_wmem, tcp_rmem, wmem_max, ..... и перезапустил сервер
до сих пор я до сих пор не столкнулся с проблемой
Здесь я должен отметить, что WireShark захватывает tcp-пакеты до того, как они отправляются через NIC, если контрольная сумма вычисляется в NIC, то неправильная контрольная сумма в WireShark обычно не является реальной проблемой.