《構建高可用Linux伺服器》是2012年機械工業出版社出版的圖書,作者是余洪春。本書實踐性非常強,包含大量企業級的套用案例及相應的解決方案,讀者可以直接用這些方案解決在實際工作中遇到的問題。
基本介紹
編輯推薦,內容簡介,目錄,作者簡介,
編輯推薦
基於實際生產環境,從Linux虛擬化、集群、伺服器故障診斷與排除、系統安全性等多角度闡述構建高可用Linux伺服器的最佳實踐
資深Linux/Unix系統管理專家兼架構師多年一線工作經驗結晶,51CTO和ChinaUnix等知名社區聯袂推薦
內容簡介
資深Linux/Unix系統管理專家兼架構師多年一線工作經驗結晶,51CTO和ChinaUnix等知名社區聯袂推薦。結合實際生產環境,從Linux虛擬化、集群、伺服器故障診斷與排除、系統安全性等多角度闡述構建高可用Linux伺服器的最佳實踐。
全書一共10章。第1章以作者的項目實踐為基礎,以RHEL和Centos為平台,有針對性地講解了構建高性能Linux伺服器的應該掌握的核心知識,包括硬體、網路配置、日誌管理、性能最佳化、監控等重要內容;第2章十分詳盡地講解了FreeBSD8.1在企業中的部署與套用,這是目前第一手關於FreeBSD8.1的寶貴資料;第3章講解了Linux伺服器的虛擬化,主要包括VMware和XEN兩大虛擬機在Windows Server 2003和Centos系統下的使用方法和工作原理,同時還介紹了Citrix XenServer的使用方法;第4章探討了生產環境下各種棘手的伺服器故障的診斷與排除方法;第5章介紹了生產環境下的SHELL腳本,這些腳本都經過實踐驗證,讀者可以直接在實際工作中使用;第6章首先講解了構建高可用Linux集群的理論知識,然後以作者的實際項目為例詳細演示了構建高可用Linux集群環境的方法(附有項目施工圖);最後還探討了MySQL資料庫性能最佳化方面的話題;第7章以理論與案例相結合的方式講解了VPN在企業中的部署與套用,包括VPN技術的分類和選擇、IPsec VPN的不足和OpenVPN的套用範疇、OpenVPN的部署案例和部署時的注意事項;第8章全面講解了Linux防火牆及系統安全方面的內容,其中iptables相關的知識是重點,講解非常詳細,很多腳本都可以直接使用;第9章介紹了構建免費開源的企業級郵件系統的完整過程,這也來自於作者在實際工作中的實踐;第10章針對系統管理員的學習、工作以及職業規劃給出了一些寶貴的建議,對新人尤為有幫助。
目錄
推薦序一
推薦序二
推薦序三
前言
第1章 Linux伺服器構建基礎/1
1.1 Linux伺服器的安裝方法/2
1.1.1 光碟安裝Centos5.5 x86_64/2
1.1.2 使用PXE+DHCP+Apache+KickStart無人值守安裝RHEL/12
1.1.3 Linux的其他安裝方法/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系統的平均負載/24
1.2.5 查看Linux系統的其他參數?/25
1.3 Linux伺服器的網路配置/28
1.3.1 配置Linux伺服器的網路/28
1.3.2 查看Linux伺服器的網路連線/31
1.3.3 查看Linux伺服器的進程/39
1.3.4 在Centos5.5、FreeBSD8.1及Windows下添加靜態路由/43
1.4 Linux伺服器的日誌管理/45
1.4.1 系統日誌syslog.conf的配置詳解/46
1.4.2 Linux下的日誌維護技巧/47
1.4.3 用shell腳本分析Nginx日誌/51
1.5 Linux伺服器的最佳化/53
1.5.1 根據伺服器套用來選購伺服器/54
1.5.2 Centos5.5最小化安裝後的最佳化/58
1.5.3 最佳化Linux下的核心TCP參數以提高系統性能/63
1.5.4 生產伺服器應儘量選擇編譯安裝軟體包/65
1.6 用開源工具Nagios監控Linux伺服器/66
1.6.1 Centos5.5下的監控工具簡介/66
1.6.2 Nagios應該監控的伺服器基礎選項/67
1.6.3 Nagios監控Windows 2003時應注意的事項/67
1.6.4 用Nagios監控Nginx腳本/68
1.6.5 Nagios使用心得/74
1.7 項目實施中應該注意的事項/75
1.8 小結/77
第2章 FreeBSD8.1在企業中的部署套用/78
2.1 最小化安裝FreeBSD8.1/79
2.2 最小化安裝FreeBSD8.1後的升級最佳化部署/90
2.2.1 最小化安裝FreeBSD8.1伺服器後建議做的事/90
2.2.2 系統管理員應該知道的FreeBSD8.1的一些事項/95
2.2.3 在FreeBSD8.1下高效地安裝和卸載軟體/99
2.2.4 查看FreeBSD8.1的硬體配置/100
2.3 在FreeBSD8.1下部署jail虛擬機/103
2.3.1 FreeBSD8.1下的jail概述/103
2.3.2 FreeBSD8.1下安裝jail的詳細步驟/104
2.3.3 FreeBSD8.1下jail的管理/105
2.3.4 通過ezjail來創建和管理jail虛擬機/106
2.3.5 jail在生產環境下的注意事項/109
2.4 在FreeBSD8.1下搭建版本控制伺服器/109
2.4.1 版本控制軟體的概念/109
2.4.2 在FreeBSD8.1下搭建CVS伺服器/109
2.4.3 在FreeBSD8.1下搭建SVN伺服器/113
2.4.4 在FreeBSD8.1下搭建Git伺服器/117
2.5 在FreeBSD8.1下搭建Samba檔案伺服器/121
2.5.1 Samba概述/121
2.5.2 在FreeBSD8.1下安裝配置Samba3.4/121
2.5.3 Samba的詳細語法配置/122
2.5.4 Samba在工作中的總結/124
2.5.5 Linux下的高級許可權檔案控制/125
2.5.6 Samba在企業開發環境中的常用案例之一/127
2.5.7 Samba在企業開發環境中的套用案例之二/128
2.6 在FreeBSD8.1下配置NFS檔案伺服器/131
2.7 在FreeBSD8.1與Centos5.5下搭建rsync伺服器/134
2.7.1 rsync的概念/134
2.7.2 在Centos5.5下配置rsync伺服器/134
2.7.3 在FreeBSD8.1下配置rsync伺服器/138
2.7.4 rsync+Inotify實現數據的實時同步更新/140
2.8 在FreeBSD8.1下搭建vsftpd伺服器/143
2.8.1 vsftpd伺服器的特點/143
2.8.2 vsftpd的運行模式/144
2.8.3 vsftpd的數據連線模式/144
2.8.4 vsftpd到底安全在哪裡/145
2.8.5 在FreeBSD8.1下配置vsftpd伺服器/146
2.8.6 用vsftpd作Linux/Unix之間的異地備份/147
2.9 在FreeBSD8.1和Centos5.5下搭建PHP和Java套用環境/149
2.9.1 在FreeBSD8.1下搭建FAMP環境/149
2.9.2 在生產環境下配置LNMP環境/152
2.9.3 在Centos5.5下搭建Java運行環境/172
2.10 小結/176
第3章 Linux伺服器虛擬化/177
3.1 在Windows Server 2003下安裝VMware GSX Server/178
3.2 用Windows 2003+VMware Server搭建64位系統測試環境/181
3.3 在Centos5.6 x86_64下安裝Xen虛擬機/183
3.3.1 XEN在Centos5.6 x86_64下的安裝步驟/183
3.3.2 XEN虛擬機的優勢/185
3.4 XEN在生產環境下的套用/185
3.4.1 XEN虛擬化的基本概念/185
3.4.2 在Centos5.5下安裝XEN虛擬機/187
3.4.3 安裝第一台虛擬機(模板機)/189
3.4.4 XEN寄宿伺服器的管理/191
3.4.5 XEN在生產環境下的套用/194
3.5 Citrix XenServer5.6虛擬機試用手記/196
3.6 小結/202
第4章 生產環境下伺服器的故障診斷與排除/203
4.1 快速排障的重要性和必要性/204
4.2 安裝系統時容易發生的錯誤描述與處理方法/204
4.2.1 忘記了Centos5.5的root密碼怎么辦/204
4.2.2 正確重設root密碼/206
4.2.3 安裝FreeBSD8.1時不要設定/boot分區/207
4.2.4 Centos5.5的Grub引導程式出錯/207
4.2.5 安裝Centos5.5時忘了關閉iptables和SELinux/208
4.2.6 如何解決Putty或PieTTY的亂碼問題/209
4.2.7 安裝雙系統時不小心刪除了Grub所在的分區/209
4.3 網路配置時容易發生的錯誤描述與處理方法/211
4.3.1 安裝Centos5.5時忘了激活網卡/211
4.3.2 Centos5.5網卡檔案備份的正確方法/212
4.3.3 解決遠程桌面超出最大連線數的問題/213
4.3.4 在Centos5.5下如何正確配置網關/214
4.3.5 VMware的機器應該如何配置自動對時/214
4.3.6 防火牆初始化的注意事項/215
4.4 系統維護時的注意事項/215
4.4.1 儘量源碼安裝,謹慎操作yum/215
4.4.2 伺服器硬體改動進入了Emergency模式/216
4.4.3 如何以普通用戶的身份編輯無許可權的檔案/216
4.4.4 在Linux下配置最大檔案打開數的方法/216
4.4.5 在Crontab下運行PHP程式的正確方法/218
4.4.6 在Crontab下正確防止腳本運行衝突/218
4.5 緊急處理線上伺服器故障的辦法/219
4.5.1 更改Administrator密碼導致計畫任務無法執行/219
4.5.2 FreeBSD8.1下的sudoer檔案意外損壞/219
4.5.3 Centos5.5的root密碼被惡意篡改/219
4.5.4 bash損壞該如何正確處理/220
4.5.5 正確操作nohup讓程式始終在後台運行/221
4.5.6 負載均衡器出現故障/221
4.6 檢查機房應注意的位置和細節問題/221
4.7 系統維護時應注意的非技術因素/222
4.8 小結/222
第5章 生產環境下的SHELL腳本/223
5.1 Vim的基礎用法及進階心得/224
5.2 Sed的基礎用法及實用舉例/228
5.2.1 Sed的基礎語法格式/228
5.2.2 Sed的用法舉例說明/230
5.3 基礎正則表達式/235
5.4 Linux下強大的查找命令find/240
5.5 匯總Linux/Unix下的bash快捷鍵/248
5.6 生產環境下的SHELL腳本分類/249
5.6.1 生產環境下的SHELL腳本備份類/250
5.6.2 生產環境下的開發類SHELL腳本/257
5.6.3 生產環境下的統計類SHELL腳本/259
5.6.4 生產環境下的監控類SHELL腳本/262
5.6.5 生產環境下的自動化類SHELL腳本/265
5.6.6 生產環境下的安全類SHELL腳本/269
5.7 小結/272
第6章 構建高可用的Linux集群/273
6.1 負載均衡高可用的核心概念和常用軟體/274
6.1.1 什麼是負載均衡高可用/274
6.1.2 以F5 BIG-IP作為負載均衡器/275
6.1.3 以LVS作為負載均衡器/275
6.1.4 以Nginx作為負載均衡器/281
6.1.5 以HAProxy作為負載均衡器/281
6.1.6 高可用軟體Keepalived/283
6.1.7 高可用軟體Heartbeat/283
6.1.8 高可用塊設備DRBD/284
6.2 負載均衡中的名詞解釋/285
6.2.1 什麼是Session/285
6.2.2 什麼是Session共享及實現的方法/285
6.2.3 什麼是會話保持/286
6.3 負載均衡器的會話保持機制/287
6.3.1 F5 Big-IP的會話保持機制/287
6.3.2 LVS的會話保持機制/288
6.4 Linux集群的項目案例分享/299
6.4.1 項目案例一:用Nginx+Keepalived實現線上票務系統/299
6.4.2 項目案例二:企業級Web負載均衡高可用之Nginx+Keepalived/302
6.4.3 項目案例四:用LVS+Keepalived構建高可用JSP集群/313
6.4.4 項目案例五:生產環境下的高可用NFS檔案伺服器/322
6.4.5 項目案例六:HAProxy雙機高可用方案之HAProxy+Heartbeat/331
6.5 項目實踐中Linux集群的總結和思考/336
6.6 網站架構應關注和研究的方向/338
6.7 MySQL資料庫的最佳化/339
6.7.1 伺服器物理硬體的最佳化/339
6.7.2 MySQL應該採用編譯安裝的方法/340
6.7.3 MySQL配置檔案的最佳化/340
6.7.4 MySQL上線後根據status狀態進行適當最佳化/346
6.7.5 MySQL資料庫的可擴展性架構方案/352
6.7.6 MySQL資料庫的Replication高可用架構/352
6.7.7 MySQL Cluster集群配置方案/354
6.7.8 生產環境下的MySQL資料庫主從Replication同步/360
6.7.9 可擴展性設計之數據切分/368
6.8 生產環境下的MySQL資料庫備份/369
6.9 部分項目施工圖紙/372
6.10 小結/374
第7章 VPN在企業中的部署套用/375
7.1 流行的VPN技術及其分類/376
7.2 如何選擇自己需要的VPN/378
7.3 IPSec VPN的不足/378
7.4 OpenVPN的套用範疇/379
7.5 經典企業VPN部署案例/379
7.5.1 案例一:在Centos5.5 x86_64下單網卡配置PPTPD伺服器/379
7.5.2 案例二:在Centos5.5 x86_64下路由模式配置OpenVPN伺服器/386
7.5.3 案例三:在FreeBSD8 x86_64下網橋模式配置OpenVPN伺服器/396
7.6 部署OpenVPN伺服器的注意事項/402
7.6.1 OpenVPN如何註銷用戶/402
7.6.2 OpenVPN伺服器的安全問題/403
7.6.3 OpenVPN伺服器的負載均衡/404
7.7 小結/404
第8章 Linux防火牆及系統安全篇/405
8.1 基礎網路知識/406
8.1.1 OSI網路參考模型/406
8.1.2 TCP/IP三次握手/四次揮手的過程詳解/407
8.1.3 其他基礎網路知識/409
8.2 Linux防火牆的概念/409
8.3 Linux防火牆在企業中的作用/410
8.4 Linux防火牆的語法/410
8.5 iptables的基礎知識/414
8.5.1 iptables的狀態state/414
8.5.2 iptables的Conntrack記錄/416
8.5.3 關於iptables模組的說明/416
8.5.4 iptables防火牆初始化的注意事項/416
8.5.5 如何保存運行中的iptables規則/417
8.6 如何流程化編寫iptables腳本/418
8.7 學習iptables應該掌握的工具/420
8.7.1 命令行的抓包工具TCPDump/420
8.7.2 圖形化抓包工具Wireshark/421
8.7.3 強大的命令行掃描工具Nmap/424
8.7.4 安全工具hping/426
8.8 iptables的簡單腳本學習/428
8.8.1 普通的Web主機防護腳本/429
8.8.2 如何讓別人ping不到自己而自己能ping通別人/430
8.8.3 建立安全的vsftpd伺服器/432
8.9 線上生產伺服器的iptables腳本/436
8.9.1 安全的主機iptables防火牆腳本/437
8.9.2 自動分析黑名單及白名單的iptables腳本/439
8.9.3 利用recent模組限制同一IP的連線數/441
8.9.4 利用DenyHosts工具和腳本來防止SSH暴力破解/444
8.9.5 將iptables作為企業的NAT路由器/448
8.9.6 如何使用工具精確地監控NAT路由器/451
8.10 TCP_wrappers套用級防火牆的介紹和套用/458
8.11 工作中的Linux防火牆總結/460
8.12 Linux系統自身的安全防護/461
8.12.1 SELinux簡介/461
8.12.2 SELinux的相關設定/461
8.13 Linux系統安全相關的工具/462
8.13.1 Rootkit檢測工具Chkrootkit/462
8.13.2 檔案系統完整性檢查工具Tripwire/464
8.13.3 防惡意掃描軟體PortSentry/470
8.14 Linux伺服器基礎防護篇/474
8.15 如何防止入侵/475
8.16 小結/476
第9章 如何構建開源免費的企業級郵件系統/477
9.1 DNS伺服器的架設/478
9.1.1 郵件伺服器與DNS的關係/478
9.1.2 如何架設內部DNS伺服器/480
9.1.3 如何以源碼方式安裝公網DNS伺服器/487
9.1.4 維護DNS伺服器應該注意的事項/494
9.2 電子郵件的傳輸過程/496
9.3 如何搭建開發郵件伺服器/498
9.3.1 搭建Sendmail+Dovecot郵件系統/498
9.3.2 搭建Postfix+Dovecot郵件系統/501
9.4 搭建iRedmail企業級郵件伺服器/504
9.4.1 iRedmail企業級郵件伺服器的介紹/504
9.4.2 在Centos5.2 x86_64上安裝iRedmail0.4.0/505
9.4.3 Postfix本身的防垃圾功能/508
9.4.4 iRedmail0.4.0特有的防垃圾技術/513
9.4.5 iRedmail0.4.0是如何利用ClamAV防病毒的/517
9.4.6 iRedmail0.4.0郵件伺服器的網路安全/517
9.4.7 iRedmail0.4.0郵件伺服器系統的監控/520
9.4.8 iRedmail0.4.0的系統檔案備份/522
9.4.9 iRedmail0.4.0的MySQL資料庫備份方案/526
9.4.10 維護iRedmail0.4.0郵件伺服器的一些注意事項/532
9.5 小結/533
第10章 系統管理員在企業中的職業定位及發展方向/534
10.1 系統管理員的概念和工作職責/535
10.2 系統管理員應該熟悉的系統/536
10.3 系統管理員應該熟悉的工具/540
10.4 Linux的學習及進階之路/544
10.5 系統管理員應該如何工作/547
10.6 給Linux/Unix新人的建議/549
10.7 系統管理員之企業生存守則/550
10.8 小結/553
附錄A Xmanager 3.0企業版實用技巧集錦/554
附錄B 使用Screen管理遠程會話/564
附錄C 自動化部署管理工具Puppet/566
附錄D 漫談CDN系統運維與電子商務運維/572
作者簡介
余洪春(網名“撫琴煮酒”)
資深項目實施工程師、高級Linux/Unix系統管理員,從事CDN系統和電子商務網站的管理和運維7年多,在FreeBSD、VPN、SHELL腳本、Linux伺服器虛擬化、高可用Linux集群建設、Linux伺服器故障診斷與排除、Linux系統安全等方面有十分深入的研究,在大量的一線實踐中積累了豐富的經驗。資深系統架構師,精通負載均衡高可用技術,擅長證券類和電子商務類網站的架構。51CTO和ChinaUnix等知名社區的特邀專家,51CTO系統、安全、網路頻道的專欄作家,ChinaUnix論壇“集群和高可用版”版主,在社區內發表了大量技術文章,深受網友歡迎。