我们正在托pipe一个客户的Debian Linux Web服务器。 它正在运行一个基于PHP的Web应用程序。
服务器位于我们的防火墙后面,具有自己的虚拟接口,端口80被内部转发到位于DMZ中的机器。
我们遇到的问题是,当数据被发布到服务器上时,对于某些用户来说似乎被缩短了。 对于同一个盒子上的某些用户是可重现的。 但同一个用户在同一个局域网上发送相同的数据在另一台PC上工作。
数据被削减到1140字节我被告知。
任何想法,为什么这可能会发生? 客户责怪我们的防火墙,但是肯定会遇到与其他服务有关的问题。 我怀疑这是网站本身的问题。 如何隔离问题的build议将有所帮助。
我们的防火墙是Astaro。
编辑:客户已将以太网帧大小临时设置为500bytes在服务器上。 这使它现在工作! 我知道一些客户正在使用运行PPPoE的互联网提供商
为了消除防火墙,我想尝试使用curl从服务器本身的testingPOST。 这篇文章在StackOverflow上给出了一个如何使用curl -F <filename>的例子。
我要找的第一个地方是在Apache / PHP日志文件(如果可能的话,甚至增加日志级别)。 如果数据在某个时间点被切断,那么就像是超时(客户使用不好的连接?某处的stream量瓶颈?)或缓冲区设置(由于没有固定的模式,这是不太可能的)。
如果日志loggingfunction不太了解,另一种方法是,如果发现可重复使用的情况,则需要设置一个嗅探器(tcpdump / wireshark)来捕获stream量并分析networking上发生的事情。
我喜欢使用这个免费的HTTP发布工具来testing发送post请求,并获得post的回应
事实certificate,这个问题是由我们的防火墙造成的。 我相信这是混乱的帧大小和丢帧高于一定的价值。 最终的解决scheme是将服务器移到防火墙的外面。
由于服务器本身是Linux,并且是针对特定应用程序的,所以iptables被configuration为仅允许端口80,433和端口22.而端口22仅响应来自某些静态源地址。
我们还没有进一步的问题。