这个问题围绕本站有一段时间,因为程序运行良好,只有退出时出现这个问题,一直以来以为是discuz自身的问题。如:http://bbs.swdyz.com/member.php?mod=logging&action=logout&formhash=72dea2a2 要把后面&formhash=72dea2a2去掉才正常显示,但用户仍然不能退出!
7 j: y5 E6 L! R' _3 y f( c' J. s5 H5 |
* g% i$ V5 c; o6 [
今天发誓解决的个问题,懒人终于查看了nginx的错误日志,里面显示:& }% p% q; H! y* c! g
[C#] 纯文本查看 复制代码 2014/08/07 08:44:17 [error] 1681#0: *49837 upstream sent too big header while reading response header from upstream, client: 218.65.212.158, server: bbs.swdyz.com, request: "GET /member.php?mod=logging&action=logout&formhash=72dea2a2 HTTP/1.1", upstream: "fastcgi://127.0.0.1:9009", host: "bbs.swdyz.com", referrer: "http://bbs.swdyz.com/home.php?mod=space&uid=1&do=profile"
0 s/ z# Z/ l4 s- Q9 c) V- k
1 I+ ]: A5 i- Y! f9 a# x" i9 ]5 v
原因在这句:upstream sent too big header while reading response header from upstream4 t- Q( K2 K3 b# E7 f
原来用户退出时发送的header过大,超出默认的1k。
3 T) G' b: j* D* P, L+ y解决方法也就有了,在nginx网站php解析那部分加上以下代码问题解决:
9 e) ?8 R/ Z/ o2 Pfastcgi_buffers 8 16k; 9 t2 _% a8 y% K) U J" O/ v9 L! X
fastcgi_buffer_size 32k;2 |1 K, j: q8 L1 l& c8 [
4 `: V" }! \7 ?4 L; A& P; H6 M6 W: R8 N2 {+ K6 Q
如果你已经设置但还是有问题估计用了反向代理的原因,同样反向代理nginx配置文件php部分加上:
q$ h6 {6 E' W; N2 ~在http{}中加了如下代码,单个虚拟站点在location ~ \.php{}中加入:
( p+ I6 S- ~& n6 P3 g7 ]0 R0 B proxy_buffer_size 128k;
( e4 p5 }% z( Z' G+ j proxy_buffers 32 32k;
/ O" }! c& T* k proxy_busy_buffers_size 128k;7 V1 I. U$ J, E. [, i2 \9 \
- ~, V4 f& A$ v. G6 M3 s
/ M+ I r/ T$ g# y+ d" B
2 `9 C* c5 l; p, s
|