一个牛人的话《DZ6.1自作聪明的UCenter头像系统,实在受不了你们的编程人员素质了》
一个牛人的话《DZ6.1自作聪明的UCenter头像系统,实在受不了你们的编程人员素质了》自作聪明的UCenter头像系统,实在受不了你们的编程人员素质了
自从今天早上从dz6.0升级到dz6.1之后,一整天Apache服务器已经自动重启了好几百次,频繁的时候每
10秒钟一次。
看了一下access.log访问日志,今天半天300多万条http请求里边,居然有
60万条是 "GET /avatar.php?uid=xxxx&size= HTTP/1.1" ,然后这个avatar.php 又会发送一个 HTTP 302的
重定向回应,让浏览器重新访问一次 /data/avatar/000/00/xx/xx_avatar_middle.jpg?random= 这个地址。
要不是浏览器客户端还有缓存机制,知道这个jpg可以不用再取,否则又会来60万次 HTTP 304 NotModified.
我这里只看到 5万多条 "GET /data/avatar/000/00/xx/xx_avatar_middle.jpg?random= HTTP/1.1",这还算正常。
每个头像都要去发起一个 "GET /avatar.php?uid=xxxx&size= HTTP/1.1" 的无法被客户端缓存的请求,你们疯了吗?
你们不知道这么疯狂的访问服务器会让服务器线程池溢出吗?
你们不知道利用HTTP头部进行缓存有多么重要吗?
不是我说你们,Discuz 6.0就有一个自作聪明的Ajax行为让我很恼火。每次看一个贴,或者看一个板,都会
发起一个Ajax的读smiley头像的请求,每次都是将近10k的流量,每天也是好几十万次,就算是10万次吧,每次
10k,你们对中国电信/网通的贡献可不小啊,每天就我一个论坛给他们贡献 10W * 10KBytes = 1GBytes = 8Gbits
每天8Gbits你们有概念吗?就一个Ajax的smiley静态图片的头像请求????
我平常真的轻易不数落人,我是做Java网站开发的,如果我的员工开发出这样的网站程序,别说拿出去给别人用,
在我看过他代码之后,就立马扣他一个月工资让他另谋高就了!
这回Discuz6.1倒好,不仅没有减少Ajax的调用,反倒变本加厉的把短消息功能也做成Ajax,喜欢用新技术提高用户
体验的用心是好的,用Ajax也没有什么错误。但你们还真是无知透顶。不知道Ajax请求也可以设置和遵守
HTTP的LastModified和NotModifiedSince头部吗?JQuery用过吗?他们的源代码你们读过吗?
有人也许说,我这么牛逼,有本事不要用discuz好了,是的,我现在是免费在用,我是暂时没工夫做一个类似的论坛。
不过你们做了这么多年web程序,对于HTTP缓存的无知程度实在让我震惊。
我这个论坛只是一个个例,不出我意料之中的事情就是,凡是日IP在5万以上的网站,没有一个能用Discuz 6.1,谁用
谁歇菜。这话我撂在这里,谁要是不信谁就上,别怪我事先没提醒。
建议你们赶紧的改:
一是把头像的功能改成在看贴的时候直接用静态图片地址代替现在的 avatar.php;
二是把Ajax取smiley的功能改掉,实在不想改就遵循一下HTTP的LastModified和NotModifiedSince头部;
三是以后杜绝这种自作聪明的行为。
如果不知道怎么改,赶紧的跟我联系,我不介意免费给你们做点咨询,好帮助你们久负盛誉的Discuz论坛不要
毁于几个弱智程序员之手。
不跟你们多废话了,我今晚先把你们万恶的avatar.php给改掉,等你们不晓得要等到猴年马月。
-- 牛股行情论坛 管理员 Wesley Wu
ps:怎么联系我?请向Google好朋友求助。
给大家一个暂时屏蔽Discuz6.1头像功能的Patch:
1.用文本编辑器打开 [DISCUZ_ROOT]/include/global.func.php 文件
找到如下几行:
function discuz_uc_avatar($uid, $size = '') {
return UC_API.'/avatar.php?uid='.$uid.'&size='.$size;
}
替换成为:
function discuz_uc_avatar($uid, $size = '') {
//return UC_API.'/avatar.php?uid='.$uid.'&size='.$size;
return 'images/avatars/noavatar.gif';
}
2.打开[UCENTER_ROOT]/view/default/pm_ls.htm 文件
找到如下行:
<!--{if $pm[avataruid]}--><img src="avatar.php?uid=$pm[avataruid]&size=small" /><!--{/if}-->
替换成为:
<!--{if $pm[avataruid]}--><img src="images/noavatar_small.gif" /><!--{/if}-->
3.打开[UCENTER_ROOT]/view/default/pm_send.htm 文件
找到如下行:
<td class="ava"><img src="avatar.php?uid=$user[uid]&size=small" /></td>
替换成为:
<td class="ava"><img src="images/noavatar_small.gif" /></td>
4.打开[UCENTER_ROOT]/view/default/pm_view.htm 文件
找到如下行:
<td class="ava"><!--{if $filter != 'announcepm'}--><img src="avatar.php?uid=$pm[msgfromid]&size=small" /><!--{/if}--></td>
替换成为:
<td class="ava"><!--{if $filter != 'announcepm'}--><img src="images/noavatar_small.gif" /><!--{/if}--></td>
然后进入ucenter后台,更新模板缓存,这个步骤很重要!
头像功能即关闭。
真的,这次的改版让人寒心。。。。。。。。。 是没什么用处。 :mad: avatar.php这个想法的确让人很费解,感觉莫名其妙
回复 铜牌 JaKin 的帖子
落伍还是一样的,没有升级到0606的补丁 落伍还是一样的,没有升级到0606的补丁 我用6.0.0 我用6.0.0 discuz本来就不是面向高负载的论坛……连在MYSQL里自动建表的技术都没用。。。
不过这帖子绝对了。
5W就不要用DISCUZ了?
好的优化,还是能负担的。 ............... [quote]原帖由 [i]江小刀[/i] 于 2008-7-15 14:58 发表 [url=http://www.im286.com/redirect.php?goto=findpost&pid=27740286&ptid=2736598][img]http://www.im286.com/images/common/back.gif[/img][/url]
discuz本来就不是面向高负载的论坛……
连在MYSQL里自动建表的技术都没用。。。
不过这帖子绝对了。
5W就不要用DISCUZ了?
好的优化,还是能负担的。 [/quote]
PHP要是DZ不是面向高负载的,那其他的论坛更不行了.
至少我没见过比DZ负载好的PHP论坛! 还是一直在用6.0.0 慢慢看 [quote]原帖由 [i]南龙[/i] 于 2008-7-15 16:05 发表 [url=http://www.im286.com/redirect.php?goto=findpost&pid=27742226&ptid=2736598][img]http://www.im286.com/images/common/back.gif[/img][/url]
PHP要是DZ不是面向高负载的,那其他的论坛更不行了.
至少我没见过比DZ负载好的PHP论坛! [/quote]
国外的多了,, 搜索我以前发的那个帖子. php的论坛 20多万在线,速度还不错的 对DZ不了解 我觉得说得很好 走向流氓风格 :) disucz的负载还是比较不错的把 如果帖子多了肯定要优化 只是我现在还没有用的6.1版本 正在观望中 那个头像调用是不是真的那么耗资源哟 :) disucz的负载还是比较不错的把 如果帖子多了肯定要优化 只是我现在还没有用的6.1版本 正在观望中 那个头像调用是不是真的那么耗资源哟
页:
[1]
