搜尋


返回清單
切換到指定樓層
通知這文章過時或找檔案 發表主題

UCenter的頭像調用負載問題改進

[複製連結]
1
小馬 ( Lv.200 站長 ) 發表於 2010-11-30 08:48:16 | 只看該作者 回覆獎勵 |降序瀏覽 |閱讀模式
在UCenter頭像系統中,使用機制是這樣的通過 "GET /uc_server/avatar.php?uid=2890313&size=middle HTTP/1.1"這樣的方式調用然後avatar.php轉換為"/data/avatar/002/89/03/13_avatar_middle.jpg"這樣的地址並發送301重定向請求,這個有很大問題.
第一,服務器的頭像連接會增加一倍,就算瀏覽器有緩存,那也是不小的流量.
第二,用戶瀏覽器並發限制默認為2有些修改成了5,也就是說IE只能同時打開2|5個請求服務器上的問題,頭像在論壇首頁,帖子中以及短信中的頻繁應用,這樣就會延遲頁面其他元素打開的時間
第三,服務器每個Apache連接會佔用一定的內存空間,這樣服務器因為連接數增加消耗的內存也有所增加

朋友找到我的時候我做出了以上的分析,本來打算給他換nginx+FastCGI,但是人懶了,沒給他換,直接裝了mod_XSendfile
下載mod_xsendfile;
    apxs2 -cia mod_xsendfile.c
    LoadModule xsendfile_module modules/mod_xsendfile.so

然後我們修改apache22的httpd-vhosts.conf 在這個虛擬主機中加入
        <files avatar.php>
                XSendFile on
                XSendFileAllowAbove on
        </files>

最後修改avatar.php文件
第一 找到
header("HTTP/1.1 301 Moved Permanently");
修改為
header("Content-Type:image/png");
第二 找到
header('Location: '.UC_API.'/'.$avatar_url);
修改為
header("X-Sendfile: ".$avatar_url);





大家正在看啥


收藏收藏 分享文章到FB上分享
複製專屬你的推廣連結:發至FB與各論壇宣傳:累積點數換GP商品 & 藍鑽
每五點閱率就可以兌換藍鑽積分或遊戲點卡 夢遊推廣文章換GP商品

你需要登入後才可以回覆 登入 | 加入會員

本版積分規則

Copyright (C) 2010-2020 夢遊電玩論壇

廣告合作:請直接聯繫我們,並附上您預刊登位置的預算。  

快速回覆 返回頂端 返回清單