因胸联盟 发表于 2015-1-16 13:15:52

linux教程之修正MaxFieldLength与MaxRequestBytes完全办理Request Too Long的成绩

系统管理相关命令:df、top、free、quota、at、lp、adduser、groupaddkill、crontab、tar、unzip、gunzip、last
当IIS7/7.5收到的哀求头的长度凌驾16K(默许值),就会激发"BadRequest-RequestTooLong.HTTPError400.Thesizeoftherequestheadersistoolong."的毛病。
博客园服务器曾遭受过这个成绩,我为此写过一篇博文(cnzz统计代码引发的BadRequest-RequestTooLong),成绩的缘故原由是第三方统计服务cnzz的统计代码写进大批的cookie,哀求时会照顾着这些cookie,从而形成哀求头长度凌驾限定。
原本觉得这个成绩只在Chrome中呈现,厥后有园友反应Firefox也会呈现这个成绩。以是,要办理这个成绩,必需从服务器端动手,这篇文章分享的就是怎样从服务器端动手。
那边动手
依据IIS官方论坛的帖子(HTTP400.Thesizeoftherequestheadersistoolong),16K的哀求头/哀求长度限定由是注册表(HKEY_LOCAL_MACHINESystemCurrentControlSetServicesHTTPParameters)中的两个参数MaxFieldLength(哀求头)与MaxRequestBytes(哀求头与哀求体)决意的。以是,要从这两个参数动手。
懂得动手的工具
经由过程微软官方文档(http://support.microsoft.com/kb/820129)进一步懂得MaxRequestBytes与MaxFieldLength:
MaxFieldLength-Setsanupperlimitforeachheader.
用于设置每个哀求头的字节数下限(默许16K)。
MaxRequestBytes-DeterminestheupperlimitforthetotalsizeoftheRequestlineandtheheaders.
用于设置哀求行(哀求体)与哀求头的总字节数下限(默许16K)。
怎样动手
动手也就是调剂MaxFieldLength与MaxRequestBytes的值(这里假定将这两个值修正为32K),并使其失效。
运转regedit,进进HKEY_LOCAL_MACHINESystemCurrentControlSetServicesHTTPParameters,
1.增加范例为DWORD(32-bit)、名为MaxFieldLength、值为十进制32768的项目;
2.增加范例为DWORD(32-bit)、名为MaxRequestBytes、值为十进制32768的项目。



增加好了,怎样让它们失效呢?最复杂的办法就是重启,但是关于服务器,最不想做的就是重启。

还好,微软官方文档中提到了不重启的办理办法,必要运转四个命令:

。代码以下:

netstophttp
netstarthttp
netstopiisadmin/y
netstartservicename



可是第3个命令netstopiisadmin会停用IIS相干的一切服务,第4个命令要将IIS相干的一切服务一个一个启动。
固然不必要重启服务器,可是这四个命令的办理计划我不喜好。。。在网上也没找到更好的办理办法。。。
厥后,经由过程探索,找到了一个更复杂的办法,只需三个命令:

。代码以下:

netstophttp
netstarthttp
iisreset



这个办法已在服务器上经由过程实践考证。

小结

弄手艺的兴趣之一就是在碰到成绩时可以找到本人心目中想要的办理办法,心目中想要的办理办法不是它已在你心中,而是当它出来时,你心中会晓得――就是它!
生存中也是一样,你心目中的谁人人,你没法正确地形貌出来,当她/他呈现时,你心中会晓得――就是她/他。

由于在linux中,用户权限很大,做任何事情都很自由,所以,你往往需要知道你做的每一步在干什么。

再见西城 发表于 2015-1-18 10:14:01

通过自学老师给的资料和向同学请教,掌握了一些基本的操作,比如挂载优盘,编译程序,在Linux环境下运行,转换目录等等。学了这些基础才能进行下面的模拟OS程序。?

因胸联盟 发表于 2015-1-25 11:58:18

通过自学老师给的资料和向同学请教,掌握了一些基本的操作,比如挂载优盘,编译程序,在Linux环境下运行,转换目录等等。学了这些基础才能进行下面的模拟OS程序。?

第二个灵魂 发表于 2015-2-2 22:02:31

我是学习嵌入式方向的,这学期就选修了这门专业任选课。

再现理想 发表于 2015-2-8 11:48:48

首先Linux是开源的,这也是最主要的原因,想学windows,Unix,对不起我们没源代码。也正是因为这样,Linux才能够像滚雪球一样越滚越大,发展到现在这种规模。

灵魂腐蚀 发表于 2015-2-25 11:37:02

即便是非英语国家的人发布技术文档,Linux也都首先翻译成英语在国际学术杂志和网络上发表。

深爱那片海 发表于 2015-3-7 21:11:51

通过一条缓慢的调制解调器线路,它也能操纵几千公里以外的远程系统。

柔情似水 发表于 2015-3-15 14:42:14

尽我能力帮助他人,在帮助他人的同时你会深刻巩固知识。

飘灵儿 发表于 2015-3-22 02:10:30

选择交流平台,如QQ群,网站论坛等。
页: [1]
查看完整版本: linux教程之修正MaxFieldLength与MaxRequestBytes完全办理Request Too Long的成绩