无法POST /上传文件到PHP页面

当我尝试发布内容或通过php上传文件到我的服务器时,我有一个奇怪的问题。

提交表单后,睡了一会儿,然后显示页面加载错误。 我试了不同的内容和大小不同的文件,发现它只能发布/上传大小530字节的内容/文件! (约)。
我可以上传/发布到其他网站,所以我很确定这个问题是在服务器上的某个地方。

  • upload_max_filesize是2M
  • post_max_size是8M
  • Apache的LimitRequestbody是3M

服务器通过PPPoE连接连接到互联网,而我之前在FTP上遇到了问题,我通过将服务器的MTU降低到1460来解决问题,但现在即使更改MTU也无济于事。

当我通过WireShark监视networking时,会显示下面的行(校验和错误和错误的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校验和卸载function引起的。

这可能与我的问题有关吗? 如果是这样,我该如何解决呢? 我应该禁用校验和? 更改网卡? 别的东西?


更新:我禁用了我的电脑(客户端)的IP校验和,现在我看到另一个消息在TCP重新传输,怀疑是问题的原因

 [This frame is a (suspected) retrasmission] 

 [TCP Analysis Flags] 

在我看来拥塞错误,但我不知道如何解决它

不要禁用TCP校验。

您的TCP堆栈应该会自动处理恢复,尽pipe这会拖低networking的吞吐量。 如果你能重现相同的故障,那么在发送或接收机器的TCP堆栈或其中的某个地方有一个非常严重的缺陷。 你在两端运行wireshark吗?

你在发送端configuration了TCP卸载吗? 你试过把它关掉吗?

是由路由器或HTTP代理的NAT?

我想在Sirjan Universoty of Technology能够给你一些关于如何在serverfault上configuration系统的更具体的build议。

我猜想是tcp拥塞的问题,于是我跟着tcp参数调优,增加了tcp_wmem,tcp_rmem,wmem_max,…..然后重启服务器

直到现在我还没有遇到这个问题

在这里我应该指出,因为WireShark在通过NIC之前捕获tcp分组,所以如果在NIC中计算校验和,那么WireShark中不正确的校验和通常不是真正的问题