官术网_书友最值得收藏!

序言

我的網(wǎng)站系統(tǒng)架構(gòu)之路

我最早接觸計(jì)算機(jī)是在1995年,上小學(xué)四年級的時(shí)候。當(dāng)時(shí)父親單位買了一臺(tái)386計(jì)算機(jī)(DOS操作系統(tǒng)+UCDOS漢字環(huán)境+WPS文字處理軟件),用于打字和打印文件。我每天課余時(shí)間都會(huì)抽空去玩這臺(tái)計(jì)算機(jī),利用DOS中自帶的QBASIC語言編寫非常簡單的小程序,從那時(shí)起我就對計(jì)算機(jī)產(chǎn)生了濃厚的興趣。之后的幾年內(nèi),先后接觸了Windows 95/98/2000操作系統(tǒng),并在Windows 98上搭建了PWS個(gè)人網(wǎng)站服務(wù)器,在Windows 2000上搭建了IIS網(wǎng)站服務(wù)器。2000年,初三畢業(yè)的那個(gè)暑假,我第一次接觸互聯(lián)網(wǎng),做了自己的第一個(gè)純靜態(tài)HTML個(gè)人主頁。高一時(shí),我利用網(wǎng)上提供的免費(fèi)主頁空間,做了一個(gè)本地的門戶網(wǎng)站。2003年高考結(jié)束后的那個(gè)假期,我花65元購買了國際域名s135.com、150元購買虛擬主機(jī),創(chuàng)辦了一個(gè)采用ASP語言開發(fā)的國際經(jīng)濟(jì)貿(mào)易資訊類網(wǎng)站——商資網(wǎng)(現(xiàn)在已關(guān)閉)。

2003年,我進(jìn)入中南民族大學(xué)學(xué)習(xí)。由于高中我學(xué)的是文科,填志愿時(shí)不能選擇計(jì)算機(jī)類專業(yè),于是我選擇了經(jīng)濟(jì)學(xué)院的國際經(jīng)濟(jì)與貿(mào)易專業(yè)。盡管如此,我對計(jì)算機(jī)和網(wǎng)絡(luò)的興趣依舊不減,開始學(xué)習(xí)Linux系統(tǒng)和PHP語言。由于具有一些網(wǎng)站制作知識(shí),我進(jìn)入了經(jīng)濟(jì)學(xué)院學(xué)生會(huì)的信息部,開發(fā)維護(hù)所在院系的網(wǎng)站。之后,又進(jìn)入了學(xué)校黨委宣傳部下屬的網(wǎng)絡(luò)媒體“民大在線”,從事網(wǎng)站PHP開發(fā)與系統(tǒng)運(yùn)維工作。后來,基于Linux+Apache +MySQL+PHP平臺(tái)為學(xué)校招生就業(yè)工作處開發(fā)了“就業(yè)信息網(wǎng)”,并接觸到了IBM高端服務(wù)器。接下來的日子,我為學(xué)校的多個(gè)部門開發(fā)、維護(hù)網(wǎng)站,為了便于演示網(wǎng)站,我編寫了一鍵搭建Apache+PHP+MySQL服務(wù)器平臺(tái)的軟件“APMServ”。最后,我為學(xué)校網(wǎng)絡(luò)中心兼職維護(hù)學(xué)校的主Web服務(wù)器,開發(fā)虛擬主機(jī)管理平臺(tái),接觸到了HP刀片服務(wù)器和磁盤陣列。學(xué)校的兼職工作為我日后工作打下了比較扎實(shí)的基礎(chǔ)。

2007年1月,大四下學(xué)期為實(shí)習(xí)階段,我進(jìn)入新浪網(wǎng)互動(dòng)社區(qū)事業(yè)部播客產(chǎn)品部工作。新浪播客于2006年12月20日剛上線,我加入播客團(tuán)隊(duì)的時(shí)候,它正處于高速發(fā)展時(shí)期,網(wǎng)站PV快速增長,Apache+PHP動(dòng)態(tài)應(yīng)用服務(wù)器的負(fù)載日益增大。而在Web服務(wù)器的負(fù)載均衡方面,由于一對F5 BIG-IP硬件負(fù)載均衡交換機(jī)要服務(wù)新浪網(wǎng)的多個(gè)產(chǎn)品,七層交換須要耗費(fèi)F5 BIG-IP不少的CPU資源,而F5 BIG-IP四層交換有專門的硬件芯片來處理,耗費(fèi)的資源較少,所以,在新浪,F(xiàn)5 BIG-IP一般只用四層負(fù)載均衡。但是,URL過濾、轉(zhuǎn)發(fā)、重定向及添加x-forwarded-for頭等功能,只有七層負(fù)載均衡才能實(shí)現(xiàn)。在這種背景下,我測試了來自俄羅斯的開源Nginx服務(wù)器,其并發(fā)支持能力高于Apache數(shù)倍,處理速度高效快捷、穩(wěn)定性也極高,于是,在領(lǐng)導(dǎo)的支持下,逐步采用了Nginx+PHP(FastCGI)取代了Apache+PHP服務(wù)器,采用Nginx負(fù)載均衡代替F5 BIG-IP進(jìn)行軟七層負(fù)載均衡,為公司節(jié)約了大量的服務(wù)器及系統(tǒng)運(yùn)維開銷。我2007年9月開始撰寫的《Nginx+PHP(FastCGI)搭建勝過Apache十倍的Web服務(wù)器》系列文章,作為國內(nèi)最早詳細(xì)介紹Nginx + PHP安裝、配置、使用的資料之一,為推動(dòng)Nginx在國內(nèi)的發(fā)展起到了積極作用。2008年4月~10月在趕集網(wǎng)工作期間,完成趕集網(wǎng)主站所有Web服務(wù)器從Apache+PHP到Nginx+PHP的遷移,單臺(tái)服務(wù)器的CPU平均占用率由70%~80%降低到30%~40%,系統(tǒng)負(fù)載由11~16降低到2~5。2008年11月至今,我在金山軟件網(wǎng)游公司逍遙網(wǎng)擔(dān)任架構(gòu)師期間,將Web負(fù)載均衡服務(wù)器、Web緩存服務(wù)器、PHP動(dòng)態(tài)應(yīng)用服務(wù)器集群、Flash FLV視頻播放服務(wù)器等,全面采用Nginx。2009年9月3日14:30,金山軟件剛公測不久的大型3D武俠網(wǎng)游《劍俠情緣網(wǎng)絡(luò)版叁》臨時(shí)維護(hù),暫停服務(wù)1小時(shí),大量玩家上游戲官網(wǎng),論壇、評論、客服等動(dòng)態(tài)應(yīng)用Nginx服務(wù)器集群,訪問人數(shù)比平時(shí)峰值激增數(shù)倍,每臺(tái)服務(wù)器的Nginx活動(dòng)連接數(shù)達(dá)到2.8萬,仍然能夠正常提供服務(wù),這也是我至今遇到的Nginx生產(chǎn)環(huán)境最高并發(fā)值。目前,Nginx已經(jīng)在新浪、搜狐、網(wǎng)易、騰訊等門戶網(wǎng)站,以及豆瓣、六間房、酷6網(wǎng)、開心網(wǎng)、人人網(wǎng)、YUPOO相冊、迅雷看看、金山逍遙網(wǎng)、金山愛詞霸等Web 2.0網(wǎng)站得到廣泛應(yīng)用,越來越受到大家的喜愛。

撰寫本書的背景

近期,新浪、搜狐、網(wǎng)易、騰訊、金山、TOM、中華網(wǎng)、賽爾網(wǎng)絡(luò)、上海九城等知名互聯(lián)網(wǎng)公司的系統(tǒng)工程師、網(wǎng)絡(luò)工程師招聘信息中,都加上了一條對Nginx配置管理經(jīng)驗(yàn)的要求。Nginx作為新興的Web服務(wù)器,目前的發(fā)展勢頭迅猛,已經(jīng)在眾多知名網(wǎng)站的各項(xiàng)產(chǎn)品中取代Apache。但是,Nginx相關(guān)的中文資料卻比較欠缺,目前還沒有關(guān)于Nginx服務(wù)器的任何書籍,這也使得一些朋友對于是否采用Nginx取代Apache猶豫不決。本書就是為對Nginx服務(wù)器實(shí)踐應(yīng)用感興趣的讀者準(zhǔn)備的,適用于以前沒有接觸過Nginx,或者對Nginx有一些了解并希望能夠進(jìn)一步深入,以及對Nginx有較多研究,希望共同探討的專業(yè)系統(tǒng)工程師、個(gè)人網(wǎng)站站長及一切Linux/Unix從業(yè)人員。

本書的主要內(nèi)容

Nginx(“engine x”)是俄羅斯人Igor Sysoev編寫的一款高性能的HTTP和反向代理服務(wù)器。Nginx選擇了epoll和kqueue作為網(wǎng)絡(luò)I/O模型,在高連接并發(fā)的情況下,Nginx是Apache服務(wù)器不錯(cuò)的替代品,它能夠支持高達(dá)50000個(gè)并發(fā)連接數(shù)的響應(yīng),運(yùn)行穩(wěn)定,且內(nèi)存、CPU等系統(tǒng)資源消耗非常低。

本書主要分為4個(gè)部分,第1部分為基礎(chǔ)篇,介紹了Nginx服務(wù)器的安裝與配置方法;第2部分為進(jìn)階篇,重點(diǎn)介紹了Nginx的配置優(yōu)化方法、Nginx與PHP/JSP/ASP.NET/Perl的結(jié)合配置方法、Nginx HTTP反向代理與負(fù)載均衡的配置與優(yōu)化、Nginx的Rewrite規(guī)則、Nginx的Web緩存服務(wù)、Nginx模塊開發(fā)等,最后還分析了新浪的開源軟件項(xiàng)目──基于Nginx的NCACHE網(wǎng)頁緩存系統(tǒng);第3部分為實(shí)戰(zhàn)篇,分析了Nginx在國內(nèi)知名網(wǎng)站(如新浪播客、金山逍遙網(wǎng)等)中的應(yīng)用案例,以及Nginx在Flash FLV視頻點(diǎn)播、小內(nèi)存VPS服務(wù)器上的優(yōu)化等內(nèi)容;第4部分為模塊篇,對Nginx的各項(xiàng)模塊進(jìn)行了集中介紹,可以作為參考手冊來翻閱。

致謝

在本書的編寫過程中,得到了家人、同事和朋友的大力支持,在此我表示由衷的感謝。感謝老婆對我的支持與鼓勵(lì),感謝余建煊、李靜、張鵬翼等朋友為本書作序,以及給予的幫助。感謝前新浪播客劉博、鄭宇、姜源、李雅敏、宋健等朋友,以及現(xiàn)在金山逍遙網(wǎng)技術(shù)支持部所有同事在研究Nginx及日常工作中給我的支持與幫助。此外,還要感謝吳捷(第九城市)及不知名的網(wǎng)友給予的意見和建議。

最后,要感謝在本書的編寫過程中,博文視點(diǎn)的徐定翔、白愛萍、陳元玉等編輯給予的幫助與支持。

示例代碼下載

如果您需要書中的示例代碼,請移步至:

http://blog.s135.com/book/nginx/code/

作者聯(lián)系方式

由于自身能力有限,書中難免存在錯(cuò)誤與疏漏,如果讀者發(fā)現(xiàn)哪兒存在錯(cuò)誤,或者有什么想法和意見想交流,可以通過E-mail或博客留言,與我聯(lián)系。

個(gè)人博客:http://blog.s135.com

E-mail:net@s135.com

張宴

北京金山軟件 金山游戲(KSG)-逍遙網(wǎng) 系統(tǒng)架構(gòu)師

2010年1月

主站蜘蛛池模板: 榆中县| 巫山县| 寻乌县| 卓尼县| 柳林县| 乌拉特后旗| 韩城市| 安西县| 华池县| 安国市| 三门县| 泗洪县| 景宁| 嘉兴市| 鲁山县| 萍乡市| 房山区| 华宁县| 上虞市| 陆良县| 义马市| 惠来县| 澳门| 莫力| 莆田市| 双城市| 安宁市| 鄢陵县| 新竹市| 甘泉县| 洪雅县| 昌黎县| 文成县| 九江县| 阳春市| 文安县| 浦北县| 临沂市| 苍梧县| 沐川县| 双流县|