我有一个从外部的服务器的可用性(从本地networking的所有作品完美)的问题。 一个关键的问题是http请求被执行,但只有当响应小于一定数量的KB时。
成功的例子和失败的尝试:
# wget http://tamtam2.izdelava.si/a.html --12:46:08-- http://tamtam2.izdelava.si/a.html => `a.html' Resolving tamtam2.izdelava.si... done. Connecting to tamtam2.izdelava.si[84.255.203.125]:80...connected. HTTP request sent, awaiting response... 200 OK Length: 255 [text/html] 100%[=====================>] 255 249.02K/s ETA 00:00 12:46:08 (249.02 KB/s) - `a.html' saved [255/255] # wget http://tamtam2.izdelava.si/b.html --12:45:40-- http://tamtam2.izdelava.si/b.html => `b.html' Resolving tamtam2.izdelava.si... done. Connecting to tamtam2.izdelava.si[84.255.203.125]:80...connected. HTTP request sent, awaiting response...
FTP连接也存在类似的问题,例如,如果访问包含太多文件或子文件夹的目录,则连接中断。 我已经尝试过不同版本的Apache(甚至FTP服务器),但结果总是相同的。 在IIS服务器中,问题是一样的。
我想这个问题是在rutinga /防火墙的水平上的某个地方,但我没有确定任何具体的东西。 有没有人有任何想法可能是什么问题?
这听起来像是一个pathMTU发现问题给我。 看看这个从微软的程序: http : //support.microsoft.com/kb/314825
基本上,从服务器计算机,尝试和PING您执行上面的testing与计算机的参数:
ping <machine above> -f -l 1472
这会让你回到第一跳的“Fragmentation needed”答复,它不能处理这个尺寸的数据包。
服务器计算机具有哪种WAN连接? 例如,DSL连接通常具有小于1500的MTU。
您的防火墙设备可能有一个configuration选项,将TCP MSS“夹”到MTU,这样您就不必对服务器计算机的MTU进行任何更改。 一旦你确定这是一个MTU问题,那么你可以追求一个基于防火墙的修复。
看起来外围防火墙configuration为限制HTTP请求/响应大小。 但是为什么防火墙对于不同的客户端wget,浏览器和php脚本的行为是不一样的。 两端使用wireshark可以在每种情况下确切地查看电线上发生了什么。 这应该可以帮助你解决问题。