Невозможно POST/ Загрузить файлы на страницу PHP

У меня странная проблема, когда я пытаюсь опубликовать содержимое или загрузить файлы по php на мой сервер.

После отправки формы она спит некоторое время, а затем показывает ошибку загрузки страницы. Я пробовал различное содержимое и файлы с разными размерами и обнаружил, что он может только публиковать / загружать содержимое / файлы размером ниже 530 байт! (примерно).
Я могу загрузить / опубликовать на других сайтах, так что я почти уверен, что проблема где-то на сервере.

  • upload_max_filesize это 2М
  • post_max_size это 8M
  • апача LimitRequestbody

Сервер подключен к Интернету через соединение 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 обычно не является реальной проблемой.

Другие вопросы по тегам