版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、構(gòu)建基于LAMP的中型網(wǎng)站架構(gòu),黑夜路人 2010.12.19 ,目錄,網(wǎng)站架構(gòu)的迭代 開源軟件選型 網(wǎng)站基礎(chǔ)優(yōu)化 Q&A,網(wǎng)站架構(gòu)原則,沒有通用的架構(gòu),只有適合自己網(wǎng)站特點(diǎn)的架構(gòu) 沒有一成不變不用升級(jí)的架構(gòu),架構(gòu)一定是迭代、迭代、再迭代 實(shí)踐,實(shí)踐,再實(shí)踐,10萬(wàn)PV網(wǎng)站架構(gòu),最簡(jiǎn)單的單臺(tái)Web+DB架構(gòu),100萬(wàn)PV網(wǎng)站架構(gòu),多Web服務(wù)器 緩存服務(wù)器 DB服務(wù)器 (主從),1000萬(wàn)PV網(wǎng)站架構(gòu),1000 萬(wàn)PV的架構(gòu),CDN/代理服務(wù)器:緩存靜態(tài)資源,比如Squid 負(fù)載均衡服務(wù)器:解決服務(wù)器定位和服務(wù)器存活檢查,比如LVS、HAProxy Web服務(wù)器:提供主要的Web業(yè)務(wù)服務(wù)器,比
2、如Apache、Nginx 資源服務(wù)器:持久存儲(chǔ)靜態(tài)資源的服務(wù)器,比如存儲(chǔ)JS、CSS、圖片等數(shù)據(jù),一般構(gòu)建也是Web系統(tǒng) 緩存服務(wù)器:減少數(shù)據(jù)庫(kù)查詢,緩存查多改少的數(shù)據(jù),比如Memcached,1000 萬(wàn)PV的架構(gòu),DB連接池:解決數(shù)據(jù)庫(kù)并發(fā)連接數(shù)(長(zhǎng)連接)、數(shù)據(jù)庫(kù)讀寫分離,比如 MySQL Proxy 數(shù)據(jù)庫(kù):采用雙主,多從的架構(gòu)模式,保證冗余和高可用性(標(biāo)配MySQL) 內(nèi)容檢索服務(wù)器:為減輕數(shù)據(jù)庫(kù)的壓力,解決中型站點(diǎn)經(jīng)常的排序和關(guān)鍵字檢索需求 ,比如 Shpinx,Xapian 其他:按照網(wǎng)站需要的服務(wù),比如 消息隊(duì)列系統(tǒng)、可持久化緩存系統(tǒng)、分布式文件系統(tǒng)等,中型網(wǎng)站架構(gòu)重點(diǎn),達(dá)到高
3、可用性(High Availability)是架構(gòu)的重點(diǎn)之一 資源定位、健康檢查、負(fù)載均衡 關(guān)鍵服務(wù)的主備冗余:Web、DB 及時(shí)有效的監(jiān)控和報(bào)警,中型網(wǎng)站架構(gòu)重點(diǎn),達(dá)到高可擴(kuò)展性 (High Scalability)是架構(gòu)的重點(diǎn)之二 數(shù)據(jù)庫(kù)的切片(Sharding):水平切分、垂直切分 減少模塊耦合度,基礎(chǔ)模塊獨(dú)立服務(wù):比如用戶系統(tǒng)(Passport),中型網(wǎng)站架構(gòu)重點(diǎn),達(dá)到高可維護(hù)性(High Maintainability)是架構(gòu)的重點(diǎn)之三 架構(gòu)模塊和服務(wù)可以容易替換 架構(gòu)可升級(jí),開源軟件選型,負(fù)載均衡 Web服務(wù) PHP 緩存服務(wù) DB連接池 數(shù)據(jù)庫(kù) 其他,選型:負(fù)載均衡,LVS 工作
4、在四層,內(nèi)核態(tài),性能極高,有VIP功能,配合 keepalived 做有效的 心跳檢查和負(fù)載均衡安裝配置麻煩, HAProxy 工作在四層到七層,功能強(qiáng)大,有VIP功能,配置簡(jiǎn)單,CPU占用高 Nginx 工作在七層,應(yīng)用層功能多,配置簡(jiǎn)單,無(wú)法支持VIP功能,選型:負(fù)載均衡,負(fù)載均衡器測(cè)試數(shù)據(jù) 機(jī)器足夠并且應(yīng)用重要建議獨(dú)立使用LVS或HAProxy,機(jī)器不足使用 Nginx,選型:Web服務(wù),Apache 2.2版本非常穩(wěn)定強(qiáng)大 Preworker模式取消了進(jìn)程創(chuàng)建開銷,性能很高 Nginx 基于異步IO模型,性能強(qiáng)悍,能夠支持?jǐn)?shù)萬(wàn)并發(fā) 對(duì)小文件支持很好,性能很高 代碼優(yōu)美,擴(kuò)展庫(kù)必須編譯進(jìn)
5、主程序 Lighttpd 基于異步IO模型,性能Nginx沒有差別 擴(kuò)展庫(kù)是SO模式,比Nginx要靈活 全球使用率比以前低,安全性沒有上面兩個(gè)好,選型:Web服務(wù),Web服務(wù)器靜態(tài)內(nèi)容測(cè)試數(shù)據(jù) 處理靜態(tài)文件Apache 性能比 nginx和lighttpd要差 Nginx在處理小文件優(yōu)勢(shì)明顯,選型:Web服務(wù),Web服務(wù)器動(dòng)態(tài)內(nèi)容測(cè)試數(shù)據(jù) 處理動(dòng)態(tài)內(nèi)容三者相差不大(測(cè)試環(huán)境差異),主要是取決于PHP和數(shù)據(jù)庫(kù)的處理性能,選型:PHP,版本選擇 PHP 4:馬上拋棄它吧,低下的性能,不完整的面向?qū)ο笾С?PHP 5.2.x:成熟穩(wěn)定,各種擴(kuò)展都支持,性能卓越,建議使用 PHP 5.3.x:有一些
6、包括Unicode、命名空間之類的新功能,看個(gè)人喜好 工作模式選擇 Mod_php5.so:如果使用Apache的話,簡(jiǎn)單配置,可以使用本模式,挺穩(wěn)定,性能不錯(cuò) FastCGI模式:推薦結(jié)合 php-fpm 的 fastcgi模式,性能很高,工作穩(wěn)定,而且可以跟 Apache、Nginx、Lighttpd 完美結(jié)合 其他 注意安全配置,注意 safe_mode、open_base_dir 等選項(xiàng) 停掉不需要使用的PHP擴(kuò)展,選型:緩存服務(wù),毋庸置疑,選擇 Memcached 吧 Memcached注意點(diǎn) 32位機(jī)上開辟內(nèi)存不要超過(guò)2G,建議可以多開幾個(gè)進(jìn)程 如果沒有富余的機(jī)器可以跟Web一起部
7、署 它單個(gè)數(shù)據(jù)值長(zhǎng)度不能超過(guò)1M 數(shù)據(jù)存儲(chǔ)最長(zhǎng)有效期是30天,選型:數(shù)據(jù)庫(kù)連接池,MySQL Proxy 性能不是太好,目前功能不完善 無(wú)法進(jìn)行讀寫分離,需要自己寫Lua腳本實(shí)現(xiàn) SQL Relay 業(yè)內(nèi)普遍反映不好用 您有推薦的嗎?,選型:數(shù)據(jù)庫(kù),毋庸置疑,選擇MySQL MySQL特點(diǎn) 開放式存儲(chǔ)引擎,可以編制自己的引擎 安裝部署簡(jiǎn)單,運(yùn)維對(duì)比其他數(shù)據(jù)庫(kù)簡(jiǎn)潔 標(biāo)配MyISAM 和 InnoDB引擎,各有所長(zhǎng) MySQL缺點(diǎn) 沒有好的熱備工具(收費(fèi)) 目前Cluster支持不太完善 Orache收購(gòu)后,前途未卜 替代品 MariaDB:創(chuàng)始人Monty構(gòu)建,Maria引擎、XtraDB引擎
8、Drizzle:精簡(jiǎn)版MySQL,云計(jì)算目標(biāo),選型:其他,反向代理服務(wù)器 Squid Varnish 數(shù)據(jù)檢索服務(wù) Sphinx Xapian 消息隊(duì)列 MemcacheQ,網(wǎng)站基礎(chǔ)優(yōu)化,MySQL優(yōu)化 前端優(yōu)化,MySQL優(yōu)化,服務(wù)優(yōu)化 選擇合適的版本:MySQL 5.x 選擇合適的存儲(chǔ)引擎:MyISAM、InnoDB MyISAM:表級(jí)鎖、查詢快(500W),可以count Innodb:行級(jí)鎖、事務(wù)支持(隔離級(jí)別),不要count,要設(shè)置主鍵 重要的配置: Max_connections、Query_cache、key_buffer、sort_buffer Innodb_buffer_p
9、ool_size、 innodb_flush_log_at_trx_commit 硬件 SSD SAS SCSI,隨機(jī)存取 內(nèi)存,多核CPU,MySQL優(yōu)化,應(yīng)用優(yōu)化 對(duì)數(shù)據(jù)進(jìn)行Sharding:分表,分庫(kù) 垂直切分:按照業(yè)務(wù)或產(chǎn)品切分 水平切分:按照數(shù)據(jù)拆分,比如mod或div 盡量減少查詢 可以緩存的就不要查數(shù)據(jù)庫(kù) 部分?jǐn)?shù)據(jù)可以借助比如 Shpinx解決 要注意的查詢 給需要的字段加上索引,比如需要 WHERE 或者 ORDER BY 的字段 不要LIKE %key%,不使用索引,可以 LIKE key% 如果可以,少使用 SELECT * FROM XX,盡量查詢自己需要的字段 避免使用 JOIN/GROUP BY/DISTINCK INNODB表不要count,前端優(yōu)化,雅虎十四條前端優(yōu)化規(guī)則 減少HTTP請(qǐng)求 把JS文件 和CS
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)學(xué)26.2《圓的對(duì)稱性》(滬科版九年級(jí)下)
- 2026年劇本殺運(yùn)營(yíng)公司員工宿舍管理制度
- 2026年劇本殺運(yùn)營(yíng)公司行業(yè)監(jiān)管對(duì)接管理制度
- 2026年劇本殺運(yùn)營(yíng)公司劇本與道具匹配管理制度
- 2025 小學(xué)四年級(jí)思想品德上冊(cè)公共場(chǎng)合禮儀訓(xùn)練課件
- 2026及未來(lái)5年中國(guó)郵票行業(yè)市場(chǎng)現(xiàn)狀調(diào)查及投資前景研判報(bào)告
- 2026年及未來(lái)5年中國(guó)數(shù)碼攝像機(jī)行業(yè)市場(chǎng)運(yùn)營(yíng)現(xiàn)狀及投資規(guī)劃研究建議報(bào)告
- 2025年數(shù)字孿生技術(shù)在城市規(guī)劃中的創(chuàng)新報(bào)告
- 光伏發(fā)電安全制度
- 保衛(wèi)安全制度
- 成人學(xué)歷提升項(xiàng)目培訓(xùn)
- 應(yīng)急預(yù)案批復(fù)意見
- 錦州市高三語(yǔ)文試卷及答案
- 化學(xué)品供應(yīng)商審核細(xì)則
- 冬季環(huán)衛(wèi)車輛安全培訓(xùn)課件
- 高速防滑防凍安全知識(shí)培訓(xùn)課件
- 電氣線路安全知識(shí)培訓(xùn)課件
- 瑞馬唑侖病例分享
- T-CSER-015-2023 場(chǎng)地環(huán)境信息地球物理探測(cè)技術(shù)指南
- 2025至2030中國(guó)背板連接器行業(yè)發(fā)展趨勢(shì)分析與未來(lái)投資戰(zhàn)略咨詢研究報(bào)告
- T/CCMA 0173-2023流動(dòng)式起重機(jī)用高性能平衡閥
評(píng)論
0/150
提交評(píng)論