內容介紹
【編輯推薦】第1版廣獲好評,分別被《程式設計師》雜誌和51CTO網站評選為“2011年度10大最具技術影響力的圖書”和“2011年度最受讀者喜愛的原創IT圖書”
基於實際生產環境,從Linux虛擬化、集群、伺服器故障診斷與排除、系統安全性等多角度闡述構建高可用Linux伺服器的最佳實踐
如何構建高可用的Linux伺服器,這是很多Linux系統管理員和運維人員都感興趣的話題,這也是他們努力學習的方向之一。本書作者在該領域浸淫多年,在大量的一線生產環境中積累了豐富的經驗和最佳實踐。難能可貴的是,他將這些寶貴的知識系統地梳理後總結在了這本書中,旨在與所有同行分享。如果你是一位Linux系統管理員,或運維工程師,或項目實施工程師,只要你細心研讀本書的內容並跟隨書中的大量案例去實踐,相信一定會受益匪淺。
——劉天斯 騰訊系統架構師
在IT領域,好書很多,爛書也不少,毫無疑問,本書是一本好書。建議大家用最強悍的執行力來學習本書中的案例,用最細膩的心思去揣摩每個案例背後的原理。如果你能吃透這本書,你就能在短短几個月的時間內將作者幾年來積累的知識和經驗化為己有,從而在短時間內使自己的技能發生質的飛躍。
—— 曹亞孟 合力金軟運維經理
本書的內容全部來自於企業的實際生產環境,非常注重實踐性和實用性,書中的所有案例都可以供大家在解決實際問題時參考和借鑑。本書從Linux伺服器的虛擬化、生產環境下伺服器的故障診斷與排除、生產環境下的Shell腳本、高可用Linux集群建設、VPN在企業中的部署套用、Linux防火牆等多個方面闡述了構建高可用Linux伺服器的方法與最佳實踐。強烈推薦!
—— 崔曉輝 大眾網高級系統管理員
本書作者從事Linux運維相關的工作已達7年之久,不僅主導過多個Linux集群相關項目,而且還從事過Linux教學方面的工作,積累了相當豐富的經驗。利用工作之餘,他把自己多年來積累的實踐經驗整理到了這本書中,可謂是精華中的精華!本書結合來自一線生產環境的真實案例講解了Linux集群、Xen虛擬化、iptables的企業級套用和系統安全相關的內容,同時還包括一些常見問題和故障的排除方法。本書尤其適合那些已經有2~3年Linux伺服器管理與運維經驗的讀者,相信本書能在工作中助你們一臂之力。
—— 侯心剛 巨人網路運維中心運維部經理
【內容簡介】
本書是資深Linux/Unix系統管理專家兼架構師多年一線工作經驗的結晶,51CTO和ChinaUnix等知名社區聯袂推薦。第1版上市後廣獲好評,分別被《程式設計師》雜誌和51CTO網站評選為“2011年度10大最具技術影響力的圖書”和“2011年度最受讀者喜愛的原創IT圖書”。第2版在第1版的基礎上進行了大量的修訂和補充,不僅修正了原來存在爭議和不夠完善的內容,而且補充了大量關於高可用的內容,使得本書在內容上更具價值。本書結合實際生產環境,從Linux虛擬化、集群、伺服器故障診斷與排除、系統安全性等多角度闡述構建高可用Linux伺服器的最佳實踐。本書實踐性非常強,包含大量企業級的套用案例及相應的解決方案,讀者可以直接用這些方案解決在實際工作中遇到的問題。
全書一共9章。第1章以作者的項目實踐為基礎,以RHEL和CentOS為平台,有針對性地講解了構建高性能Linux伺服器的應該掌握的核心知識,包括硬體、網路配置、日誌管理、性能最佳化、監控等重要內容;第2章講解了Linux伺服器的虛擬化,主要包括VMware和Xen兩大虛擬機在Windows Server 2003和CentOS系統下的使用方法和工作原理,同時還介紹了Citrix XenServer的使用方法;第3章探討了生產環境下各種棘手的伺服器故障的診斷與排除方法;第4章介紹了生產環境下的Shell腳本,這些腳本都經過實踐驗證,讀者可以直接在實際工作中使用;第5章首先講解了構建高可用Linux集群的理論知識,然後以作者的實際項目為例詳細演示了構建高可用Linux集群環境的方法(附有項目施工圖);最後還探討了MySQL資料庫性能最佳化方面的話題;第6章以理論與案例相結合的方式講解了VPN在企業中的部署與套用,包括VPN技術的分類和選擇、IPSec VPN的不足和OpenVPN的套用範疇、OpenVPN的部署案例和部署時的注意事項;第7章全面講解了Linux防火牆及系統安全方面的內容,其中iptables相關的知識是重點,講解非常詳細,很多腳本都可以直接使用;第8章介紹了構建免費開源的企業級郵件系統的完整過程,這也來自於作者在實際工作中的實踐;第9章針對系統管理員的學習、工作以及職業規劃給出了一些寶貴的建議,對新人尤為有幫助。
作者介紹
余洪春 (“撫琴煮酒”) 資深項目實施工程師、高級系統架構師,從事CDN電子廣告系統和電子商務網站運維工作7年多,在高可用Linux集群、Linux虛擬化、企業VPN、Shell腳本、Linux系統安全等方面進行了深入的研究,在大量一線實踐中積累了豐富的經驗。精通負載均衡高可用技術,擅長電子商務和證券類網站架構。51CTO和ChinaUnix等知名社區的特邀專家,51CTO系統、安全、網路頻道的專欄作家,ChinaUnix論壇“集群和高可用版”版主,在社區內發表了大量技術文章,深受網友好評。51CTO部落格:http://andrewyu.blog.51cto.com
ChinaUnix部落格:yuhongchun.blog.chinaunix.net
作品目錄
推薦序一推薦序二
推薦序三
推薦序四
前言
第1章Linux伺服器構建基礎/1
1.1Linux伺服器的安裝方法/2
1.1.1光碟安裝CentOS 5.5 x86_64/2
1.1.2使用PXE+DHCP+Apache+KickStart無人值守安裝RHEL/12
1.1.3Linux的其他安裝方法/17
1.2全面了解Linux伺服器/18
1.2.1查看Linux伺服器的CPU詳細情況/18
1.2.2查看Linux伺服器的記憶體使用情況/19
1.2.3查看Linux伺服器的硬碟使用情況/20
1.2.4查看Linux系統的平均負載/23
1.2.5查看Linux系統的其他參數/24
1.3Linux伺服器的網路配置/27
1.3.1配置Linux伺服器的網路/27
1.3.2查看Linux伺服器的網路連線/30
1.3.3查看Linux伺服器的進程/38
1.3.4在CentOS 5.5、FreeBSD 8.1及Windows下添加靜態路由/42
1.4Linux伺服器的日誌管理/45
1.4.1系統日誌syslog.conf的配置詳解/45
1.4.2Linux下的日誌維護技巧/46
1.4.3用Shell腳本分析Nginx日誌/50
1.5Linux伺服器的最佳化/53
1.5.1根據伺服器套用來選購伺服器/53
1.5.2CentOS 5.5最小化安裝後的最佳化/57
1.5.3最佳化Linux下的核心TCP參數以提高系統性能/61
1.5.4生產伺服器應儘量選擇編譯安裝軟體包/63
1.6用開源工具Nagios監控Linux伺服器/64
1.6.1CentOS 5.5下的監控工具簡介/64
1.6.2Nagios應該監控的伺服器基礎選項/65
1.6.3Nagios監控Windows 2003時應注意的事項/66
1.6.4Nagios使用心得/67
1.7項目實施中應該注意的事項/68
1.8小結/70
第2章Linux伺服器虛擬化/71
2.1FreeBSD下的jail虛擬機/72
2.1.1jail虛擬機的特點/72
2.1.2在FreeBSD 8.1下安裝jail的詳細步驟/73
2.1.3使用jexec工具管理jail虛擬機/74
2.1.4使用ezjail工具創建和管理jail虛擬機/75
2.1.5jail在生產環境下的注意事項/78
2.2Linux系統自帶的Xen虛擬機/78
2.2.1Xen虛擬機的工作原理及優勢/79
2.2.2在CentOS 5.6 x86_64下安裝Xen虛擬機/81
2.2.3在CentOS 5.5下安裝Xen虛擬機/83
2.2.4安裝第一台虛擬機(模板機)/86
2.2.58分鐘快速部署虛擬機/88
2.2.6Xen虛擬機的管理/89
2.2.7Xen寄宿伺服器的管理/89
2.2.8Xen在生產環境下的套用/92
2.3Citrix XenServer 5.6虛擬機使用心得/95
2.4用VMware Server搭建64位系統測試環境/97
2.5小結/100
第3章生產環境下伺服器的故障診斷與排除/101
3.1快速排障的重要性和必要性/102
3.2安裝系統時容易發生的錯誤描述與處理方法/102
3.2.1忘記了CentOS 5.5的root密碼怎么辦/102
3.2.2正確重設root密碼/104
3.2.3安裝FreeBSD 8.1時不要設定/boot分區/105
3.2.4CentOS 5.5的Grub引導程式出錯/105
3.2.5安裝CentOS 5.5時忘了關閉iptables和SELinux/106
3.2.6如何解決PuTTY或PieTTY的亂碼問題/107
3.2.7安裝雙系統時不小心刪除了Grub所在的分區/107
3.3網路配置時容易發生的錯誤描述與處理方法/109
3.3.1安裝CentOS 5.5時忘了激活網卡/109
3.3.2 CentOS 5.5網卡檔案備份的正確方法/110
3.3.3解決遠程桌面超出最大連線數的問題/111
3.3.4在CentOS 5.5下如何正確配置網關/112
3.3.5VMware的機器應該如何配置自動對時/112
3.3.6防火牆初始化的注意事項/113
3.4系統維護時的注意事項/113
3.4.1儘量源碼安裝,謹慎操作yum/113
3.4.2伺服器硬體改動進入了Emergency模式/114
3.4.3如何以普通用戶的身份編輯無許可權的檔案/114
3.4.4在Linux下配置最大檔案打開數的方法/114
3.4.5在Crontab下運行PHP程式的正確方法/116
3.4.6在Crontab下正確防止腳本運行衝突/116
3.5緊急處理線上伺服器故障的辦法/117
3.5.1更改Administrator密碼導致計畫任務無法執行/117
3.5.2FreeBSD 8.1下的sudoer檔案意外損壞/117
3.5.3CentOS 5.5的root密碼被惡意篡改/117
3.5.4bash損壞該如何正確處理/118
3.5.5正確操作nohup讓程式始終在後台運行/119
3.5.6負載均衡器出現故障/119
3.6檢查機房應注意的位置和細節問題/119
3.7系統維護時應注意的非技術因素/120
3.8小結/121
第4章生產環境下的Shell腳本/122
4.1Vim的基礎用法及進階心得/123
4.2Sed的基礎用法及實用舉例/127
4.2.1Sed的基礎語法格式/127
4.2.2Sed的用法舉例說明/129
4.3基礎正則表達式/134
4.4Linux下強大的查找命令find/139
4.5匯總Linux/UNIX下的bash快捷鍵/147
4.6生產環境下的Shell腳本分類/148
4.6.1生產環境下的Shell腳本備份類/149
4.6.2生產環境下的開發類Shell腳本/157
4.6.3生產環境下的統計類Shell腳本/159
4.6.4生產環境下的監控類Shell腳本/162
4.6.5生產環境下的自動化類Shell腳本/166
4.6.6生產環境下的安全類Shell腳本/170
4.7小結/173
第5章構建高可用的Linux集群/174
5.1負載均衡高可用的核心概念和常用軟體/175
5.1.1什麼是負載均衡高可用/175
5.1.2以F5 BIG?IP作為負載均衡器/176
5.1.3以LVS作為負載均衡器/176
5.1.4以Nginx作為負載均衡器/182
5.1.5以HAProxy作為負載均衡器/182
5.1.6高可用軟體Keepalived/184
5.1.7高可用軟體Heartbeat/184
5.1.8高可用塊設備DRBD/185
5.2負載均衡中的名詞解釋/186
5.2.1什麼是Session/186
5.2.2什麼是Session共享及實現的方法/186
5.2.3什麼是會話保持/187
5.3負載均衡器的會話保持機制/188
5.3.1F5 Big?IP的會話保持機制/188
5.3.2LVS的會話保持機制/189
5.4Linux集群的項目案例分享/200
5.4.1項目案例一:用Nginx+Keepalived實現線上票務系統/200
5.4.2項目案例二:企業級Web負載均衡高可用之Nginx+Keepalived/207
5.4.3項目案例三:用LVS+Keepalived構建高可用JSP集群/218
5.4.4項目案例四:Nginx主主負載均衡架構/225
5.4.5項目案例五:生產環境下的高可用NFS檔案伺服器/231
5.4.6項目案例六:HAProxy雙機高可用方案之HAProxy+Keepalived/239
5.4.7項目案例七:百萬級PV高可用網站架構設計/246
5.4.8項目案例八:千萬級PV高性能高並發網站架構設計/247
5.5軟體級負載均衡器的特點對比/251
5.6項目實踐中Linux集群的總結和思考/252
5.7細分五層解說網站架構/254
5.8網站架構應關注和研究的方向/256
5.9MySQL資料庫的最佳化/258
5.9.1伺服器物理硬體的最佳化/258
5.9.2MySQL應該採用編譯安裝的方法/258
5.9.3MySQL配置檔案的最佳化/258
5.9.4MySQL上線後根據status狀態進行適當最佳化/264
5.9.5MySQL資料庫的可擴展性架構方案/273
5.9.6MySQL雙主多從高可用配置方案/274
5.9.7生產環境下的MySQL資料庫主從Replication同步/276
5.9.8CentOS 5.6 x86_64下MySQL Proxy 0.8.2的安裝及測試/285
5.10生產環境下的MySQL資料庫備份/289
5.11部分項目施工圖紙/293
5.12小結/295
第6章VPN在企業中的部署套用/296
6.1流行的VPN技術及其分類/297
6.2如何選擇自己需要的VPN/299
6.3IPSec VPN的不足/299
6.4OpenVPN的套用範疇/300
6.5經典企業VPN部署案例/300
6.5.1案例一:在CentOS 5.5 x86_64下單網卡配置PPTPD伺服器/300
6.5.2案例二:在CentOS 5.5 x86_64下路由模式配置OpenVPN伺服器/307
6.5.3案例三:在FreeBSD 8 x86_64下網橋模式配置OpenVPN伺服器/317
6.6部署OpenVPN伺服器的注意事項/323
6.6.1OpenVPN如何註銷用戶/323
6.6.2OpenVPN伺服器的安全問題/324
6.6.3OpenVPN伺服器的負載均衡/325
6.7小結/325
第7章Linux防火牆及系統安全/326
7.1基礎網路知識/327
7.1.1OSI網路參考模型/327
7.1.2TCP/IP三次握手/四次揮手的過程詳解/328
7.1.3其他基礎網路知識/330
7.2Linux防火牆的概念/330
7.3Linux防火牆在企業中的作用/331
7.4Linux防火牆的語法/331
7.5iptables基礎知識/335
7.5.1iptables的狀態state/335
7.5.2iptables的Conntrack記錄/337
7.5.3關於iptables模組的說明/337
7.5.4iptables防火牆初始化的注意事項/337
7.5.5如何保存運行中的iptables規則/338
7.6如何流程化編寫iptables腳本/339
7.7學習iptables應該掌握的工具/341
7.7.1命令行的抓包工具TCPDump/341
7.7.2圖形化抓包工具Wireshark/342
7.7.3強大的命令行掃描工具Nmap/345
7.7.4安全工具hping/347
7.8iptables的簡單腳本學習/349
7.8.1普通的Web主機防護腳本/350
7.8.2如何讓別人ping不到自己而自己能ping通別人/351
7.8.3建立安全的vsftpd伺服器/353
7.9線上生產伺服器的iptables腳本/357
7.9.1安全的主機iptables防火牆腳本/358
7.9.2自動分析黑名單及白名單的iptables腳本/359
7.9.3利用recent模組限制同一IP的連線數/362
7.9.4利用DenyHosts工具和腳本來防止SSH暴力破解/364
7.9.5將iptables作為企業的NAT路由器/368
7.9.6如何使用工具精確地監控NAT路由器/371
7.10TCP_wrappers套用級防火牆的介紹和套用/376
7.11系統運維工作中的Linux防火牆總結/378
7.12Linux系統自身的安全防護/379
7.12.1SELinux簡介/379
7.12.2SELinux的相關設定/379
7.13Linux系統安全相關的工具/380
7.13.1Rootkit檢測工具Chkrootkit/381
7.13.2檔案系統完整性檢查工具Tripwire/383
7.13.3防惡意掃描軟體PortSentry/388
7.14Linux伺服器基礎防護篇/393
7.15如何防止入侵/394
7.16小結/395
第8章如何構建開源免費的企業級郵件系統/396
8.1DNS伺服器的架設/397
8.1.1郵件伺服器與DNS的關係/397
8.1.2如何架設內部DNS伺服器/399
8.1.3如何以源碼方式安裝公網DNS伺服器/406
8.1.4維護DNS伺服器應該注意的事項/413
8.2電子郵件的傳輸過程/416
8.3如何搭建開發郵件伺服器/417
8.3.1搭建Sendmail+Dovecot郵件系統/417
8.3.2搭建Postfix+Dovecot郵件系統/420
8.4搭建iRedMail企業級郵件伺服器/423
8.4.1iRedMail企業級郵件伺服器的介紹/423
8.4.2在CentOS 5.2 x86_64上安裝iRedMail 0.4.0/424
8.4.3Postfix本身的防垃圾功能/427
8.4.4iRedMail 0.4.0特有的防垃圾技術/432
8.4.5iRedMail 0.4.0如何利用ClamAV防病毒/436
8.4.6iRedMail 0.4.0郵件伺服器的網路安全/437
8.4.7iRedMail 0.4.0郵件伺服器系統的監控/439
8.4.8iRedMail 0.4.0的系統檔案備份/441
8.4.9iRedMail 0.4.0的MySQL資料庫備份方案/445
8.4.10維護iRedMail 0.4.0郵件伺服器的一些注意事項/451
8.5小結/452
第9章系統管理員在企業中的職業定位及發展方向/454
9.1系統管理員的概念和工作職責/455
9.2系統管理員應該熟悉的系統/456
9.3系統管理員應該熟悉的工具/460
9.4Linux的學習及進階之路/464
9.5系統管理員應該如何工作/467
9.6系統管理員的發展方向/469
9.7系統管理員如何進階為系統架構師/470
9.8系統管理員之企業生存守則/471
9.9小結/474
附錄AXmanager 3.0企業版實用技巧集錦/475
附錄B使用Screen管理遠程會話/485
附錄C自動化部署管理工具Puppet/487
附錄D在CentOS 5.5下配置rsync伺服器/493
附錄Ersync+inotify實現數據的實時同步更新/498