<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post//</link>
<title><![CDATA[nginx http 400 bad request，Nginx过一段时间出现400 Bad Request 错误解决方法。]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[Unix/LinuxC技术]]></category>
<pubDate>Thu, 07 Jan 2016 10:42:12 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	背景：直接访问ip没有问题，经过cdn后有问题（穿透当dns用，实现故障自动转移，为何不用GSLB[GSLB 是英文Global Server Load Balance的缩写，意思是全局负载均衡。]的dns和类似腾讯的TGW系统，因为没有自己的dns系统...），此时出现http的400错误。<br/>检测办法：在nginx日志的access log中记录post请求的参数值，http://jackxiang.com/post/7728/ 。<br/>发现：这个post的值根本没有取到。而直接绑定IP的就取到了，说明经过了cdn的数据均被干掉了。<br/><br/>而网上常常说是因为header太大引起：<br/>nginx 400 Bad request是request header过大所引起，request过大，通常是由于cookie中写入了较大的值所引起。<br/> 每个请求头的长度也不能超过一块缓冲的容量，否则nginx返回错误400 (Bad Request)到客户端。 <br/><br/>来自：http://www.linuxidc.com/Linux/2014-06/103685.htm<br/><br/><br/>这个哥们的博客奇怪：<br/>ail -f /opt/nginx/logs/access.log<br/>&nbsp;&nbsp;&nbsp;&nbsp;116.236.228.180 - - [15/Dec/2010:11:00:15 +0800] &quot;-&quot; 400 0 &quot;-&quot; &quot;-&quot;<br/>&nbsp;&nbsp;&nbsp;&nbsp;116.236.228.180 - - [15/Dec/2010:11:00:15 +0800] &quot;-&quot; 400 0 &quot;-&quot; &quot;-&quot;<br/><br/>网上大把的文章说是HTTP头/Cookie过大引起的,可以修改nginx.conf中两参数来修正.<br/>代码如下:<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;client_header_buffer_size 16k;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;large_client_header_buffers 4 32k;<br/><br/>修改后<br/>代码如下:<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;client_header_buffer_size 64k;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; large_client_header_buffers 4 64k;<br/><br/>没有效果,就算我把nginx0.7.62升到最新的0.8.54也没能解决.<br/>在官方论坛中nginx作者提到空主机头不会返回自定义的状态码,是返回400错误.<br/>http://forum.nginx.org/read.php?2,9695,11560<br/>最后修正如下<br/>改为原先的值<br/>代码如下:<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;client_header_buffer_size 16k;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; large_client_header_buffers 4 32k;<br/><br/>关闭默认主机的日志记录就可以解决问题<br/>代码如下:<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;server &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;listen *:80 default;<br/>&nbsp;&nbsp;&nbsp;&nbsp;server_name _;<br/>&nbsp;&nbsp;&nbsp;&nbsp;return 444;<br/>&nbsp;&nbsp;&nbsp;&nbsp;access_log&nbsp;&nbsp; off;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/><br/><br/><br/>说是header过大，关掉日志解决问题，这种乐观主义我是见识到了，呵呵：<br/>http://www.blogjava.net/xiaomage234/archive/2012/07/17/383329.html<br/><br/><br/>Header长度太长，咱能不能打一下nginx的header？<br/>在Nginx里面取这个HEAD用到的是$http_head参数，Nginx里面需要小写：<br/>http://gunner.me/archives/363<br/>
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] nginx http 400 bad request，Nginx过一段时间出现400 Bad Request 错误解决方法。]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>