關于我們
書單推薦
新書推薦
|
Linux運維之道(第2版)
隨著開源技術的不斷進步與創(chuàng)新,整個IT行業(yè)中越來越多的企業(yè)愿意采用開源產品,而基于Linux的操作系統(tǒng)為這些開源產品提供了一個很好的操作平臺。丁明一編著的《Linux運維之道(第2版)》將圍繞Linux操作系統(tǒng)這樣一個基礎平臺,講解如何使用操作系統(tǒng)實現(xiàn)各種開源產品的應用案例。全書主要從運維工作中的應用服務入手,全面講解基本Linux操作系統(tǒng)以及各種軟件服務的運維工作。
現(xiàn)在的商業(yè)環(huán)境是一個充滿競爭的環(huán)境,很多企業(yè)的業(yè)務量在不斷地增長,而對服務質量的要求也越來越高。特別是互聯(lián)網企業(yè)為了滿足客戶非常高的需求,提升用戶使用體驗。IT部門維護的設備往往數(shù)以萬計,如此龐大的設備維護量,通常會讓IT管理人員頭疼不已。本書介紹的自動化運維的內容可以讓我們快速掌握大規(guī)模批量處理的簡單方法。僅僅依靠自動化運維還不足以發(fā)揮出這些設備能效,因此,我們還需要將這個服務器設備有機地結合在一起,為客戶提供安全、快捷、高效的服務,于是集群技術應運而生。本書后面將圍繞集群技術介紹目前比較流行的開源產品部署案例。
《Linux運維之道》從運維工作的實際需求出發(fā),全面講解相關的技術、經典案例,以及常見問題的解決方案。
★作者丁明一具有豐富的實踐及教學經驗,且非常認真,《Linux運維之道》是其嘔心瀝血之作,不僅內容精益求精,代碼的編排作者也花了一些心思,可見其縝密。 ★《Linux運維之道》得到了多位業(yè)內專家的強烈推薦,包括紅帽大中華區(qū)考官黃軍寶、原紅帽中國高級認證考官許成林,以及百度、新浪、達內、武漢譽天的運維工程師和培訓講師。 ★運維是一項需要多種技能的工作,Linux運維之道作者丁明一告訴您如何成為一名合格的運維工程師,能夠直接提高運維人員的工作效率,值得閱讀。 ★本書在第一版的基礎上進行了全面細致的修訂,所有內容全面升級至CentOS7.2系統(tǒng)。
序1
我們正處在一個互聯(lián)網的時代,社會經濟生活的各個方面都與互聯(lián)網有著或多或少、千絲萬縷的聯(lián)系,互聯(lián)網更是成為了我們生活中不可缺少的一部分,例如電子商務、社交網絡、即時通信等;ヂ(lián)網還在蓬勃發(fā)展,它將更進一步深化并滲入我們生活的每一個部分,更緊密地聯(lián)系著我們周邊的人與事物。 然而,在互聯(lián)網的發(fā)展歷程中,有一個事物是密不可分的,那就是開源軟件。開源軟件在互聯(lián)網的發(fā)展過程中起到了舉足輕重的作用,它為互聯(lián)網加速發(fā)展提供了基石;反過來,互聯(lián)網也為開源軟件提供了前所未有的時機。兩者相互促進,還將在未來一直持續(xù)下去。 在互聯(lián)網的浪潮中誕生了許多偉大的公司,它們都使用了各種不同的開源技術,同時也為開源做出了巨大的貢獻。例如:Google作為全球最大的搜索引擎公司,使用了Python、MySQL、OpenSSL等開源軟件或源代碼;Facebook是全球第一大社交網站,擁有約9億用戶,同時也是世界排名第一的照片分享站點,每天上載850萬張照片,使用的開源軟件有PHP、MySQL、Memcached等,同時還支撐開源項目Cassandra等;Dropbox是一個提供同步本地文件的網絡存儲在線應用,支持在多臺電腦、多種操作中自動同步,并可當做大容量的網絡硬盤使用,使用的開源軟件有Python、MySQL、Memcached、Nginx等。類似的公司還有很多,在此不再一一列舉。此外,這些大公司還有一個共同的地方,就是都使用了Linux內核的操作系統(tǒng)。 開源軟件為互聯(lián)網的發(fā)展提供了強勁的動力,同時也為個人的發(fā)展帶來了前所未有的機會。學習和掌握使用開源技術已成為IT行業(yè)的普遍現(xiàn)象。掌握和精通一門或多門開源技術是打開職業(yè)生涯之門的金鑰匙,更是實現(xiàn)自我價值的便捷路徑。 書籍是我們通往知識殿堂的階梯。在市面上講解和剖析開源技術的書琳瑯滿目,本書無疑是其中璀璨奪目書籍之一。本書全面勾勒出互聯(lián)網運維中所使用的技術,從基礎開始豐富每個技術細節(jié),猶如一幅風景畫,有著清晰、突出的輪廓,又有色彩斑斕的層次。 作者簡單明了的語言讓讀者更容易理解和吸收,從理論到實踐地做了詳盡的闡述,做到理論結合實踐,不偏不倚,既避免了光有理論的枯燥,又避免了只有實踐的茫然。其中有很多是作者的經驗之談,既可以直接用在工作當中,又可以讓讀者舉一反三,加深印象。 本書從基本的操作系統(tǒng)知識與實踐到互聯(lián)網應用,由淺入深,由表及里,層層推進;對作為開源技術中既基礎又非常重要的Linux操作系統(tǒng)的各類操作和技巧做了詳細的闡述,進而對各類常用服務(如Apache、Nginx、MySQL等)進行了深度的剖析,同時又考慮到系統(tǒng)及服務的安全?梢娮髡咝乃伎b密,為本書費盡心血。 拜讀本書之后,受益匪淺,其中的許多小技巧在工作中非常有幫助。相信讀者在閱讀本書之后也能大受裨益。 黃軍寶 紅帽大中華區(qū)考官 序2 我認識作者是很久以前的事情了,作為一名長期工作在項目工程一線和教學一線的講師,自認為對關于計算機系統(tǒng)技術方面的各類書籍比較熟悉,對圈子里的一些牛人也比較熟悉。但是,突然有一天,丁明一同志給了我一份他的電子稿書籍,然后告訴我說,這是他一點一滴積累起來的關于Linux方面的技術資料,并且打算出一本正式的書籍,好讓更多的愛好者能更好地學習Linux技術。這確實嚇了我一跳。在好奇心的趨勢下,我認真閱讀了他的作品,結果發(fā)現(xiàn)這本書確實與眾不同。 與一些純粹的學院派的書籍相比,這本書更貼近于生產環(huán)境所使用的技術,書中提到的各種技術大多是生產環(huán)境中比較常用的,并且以實際的工程經驗和方法來解決各種問題,將各種枯燥的技術原理講解得十分透徹。不僅如此,書中的大量實例能讓我了解更多的技術細節(jié),看到真正的大師們是如何操作的。 讀了整本書之后,讓我對他更加好奇,開始回想我們認識到現(xiàn)在,一點一滴,慢慢地,我從記憶中找到了答案,他是一個完全由興趣驅動而對技術極端癡迷的人,也是一個善于思考、富于想象力的人,這種純粹的不含任何功利因素的興趣與癡迷才是科學技術發(fā)展的真正原動力。 我所做過的RedHat官方的培訓中,老丁算是讓我非常認同的一位老師。他對技術的癡迷和對知識的質疑精神,成就了Linux系統(tǒng)領域的一本好書。我在培訓過程中通常會向新生或者入門者推薦這本書。一方面,是因為這本書確實是從入門到提高的良好橋梁;另一方面,是讓他們知道,要從事Linux領域的工作,強烈的興趣比什么都重要。 這本書將會對Linux技術在我國的普及起到良好的推進作用。書中增加的現(xiàn)階段流行的虛擬化技術,為云計算打下了良好的基礎,有關群集的內容能讓大家學會在企業(yè)中生存的本領。 我相信,本書的內容將會給讀者帶來驚喜。 許成林 原紅帽中國高級認證考官 序3 作為服務器領域的佼佼者,Linux在過去很長一段時間已經成為企業(yè)服務部署的不二選擇,并且,隨著Android操作系統(tǒng)的快速發(fā)展,目前越來越多的設備使用基于Linux的操作系統(tǒng)。然而在Linux迅猛發(fā)展的同時,我也看到了優(yōu)秀的Linux人才嚴重稀缺的情況。導致這類人才短缺的一個很大原因是Linux的學習難度較大,對大多數(shù)人而言,剛接觸Linux時學習的復雜度比較高,加上市面上能夠由淺入深地介紹Linux技術與規(guī)劃的書籍非常難找。 作者以其多年的工作經驗,總結歸納了一本適合各層次的人閱讀的Linux書籍。本書內容講解深入淺出,配合大量的經典案例,通俗易懂,實用性非常強。尤其是書中提供的常見問題分析,根據(jù)各種常見問題提供了不同的解決方案,可以幫助讀者排除很多已知的常見故障。對于難以理解的抽象概念,書中總是能給出一個具體的操作案例,充分考慮到了讀者的閱讀體驗。實踐是檢驗真理的唯一標準,Linux本身也是一門實踐性很強的學科,本書作者為讀者準備了大量的實驗內容,相信在完成這些案例后,我們能真正理解這些技術,并應用到實際生產環(huán)境中。作者以案例方式講述技術知識,讓學員學以致用,在課程中穿插大量的實驗,以提高學員的操作能力。對于初級運維工作者及高級運維工作者,本書都具有相當高的實踐指導意義。 在我的工作中,很多學生會問到我:“有沒有一本可以指導我們發(fā)展方向的書?”我想,本書給出了答案,作者從入門基礎到大規(guī)模部署集群環(huán)境,都給予了指導性的說明,并包含了具體的應用案例,學習完書中的內容后,你的技術水平會有一個質的飛躍。相信對于準備進入Linux運維崗位的工作者而言是非常有幫助的。書中內容緊貼工作實際,也是我們未來走向更高技術崗位的基石。 鄒圣林 武漢譽天高級講師 前言 撰寫本書的起因 目前越來越多的企業(yè)需要依賴IT技術發(fā)布產品與服務,尤其是電子商務最為明顯,它凸顯了IT技術在現(xiàn)代企業(yè)中的重要性。當企業(yè)需要部署IT業(yè)務時,機房與服務器是整個IT技術生態(tài)鏈中非常重要的環(huán)節(jié)。對于服務器操作系統(tǒng)的選擇,Linux以其開源、穩(wěn)定、安全的特性,目前在服務器領域已經稱為無可爭議的霸主,而且有眾多的服務可以應用于Linux平臺,可以靈活地應用這些服務以滿足企業(yè)的各種業(yè)務需求。本書重點在于講解如何部署服務器操作系統(tǒng),以及在Linux操作系統(tǒng)平臺上部署常見的IT服務。 從1991年起至今,Linux已經快速成長為企業(yè)服務器產品的首選操作系統(tǒng),越來越多的IT企業(yè)采用Linux作為其服務器端平臺操作系統(tǒng),為客戶提供高性能、高可用的業(yè)務服務。隨著紅帽公司宣布其年營業(yè)額超10億美元,也標志著開源Linux操作系統(tǒng)的光輝時代已經來臨。紅帽的成功預示著采用開源模式的Linux操作系統(tǒng)可以為企業(yè)提供安全、可靠和高性能的平臺系統(tǒng)。服務器領域中Linux操作系統(tǒng)的份額越來越大,而目前技術人才又相對匱乏,導致大量的就業(yè)人才缺口,本書著眼于Linux技術中方方面面的主流技術,為讀者進入Linux行業(yè)開啟了一扇暢通的大門。本書主要分為三部分,從基礎的系統(tǒng)管理到Shell自動化運維的實現(xiàn),再到網絡服務器的部署實施,最后通過案例介紹高負載網絡架構的企業(yè)環(huán)境。本書在選擇操作系統(tǒng)發(fā)行版本時,綜合了各個發(fā)行版本的特點,最終選擇了CentOS作為本書的基礎系統(tǒng)平臺。CentOS是眾多Linux發(fā)行版本之一,但因為其源自于RedHat框架,同時該版本完全開源,包括開放的軟件YUM源,可以為用戶帶來更加方便的升級方法。另外,目前國內很多企業(yè)對于CentOS發(fā)行版也非常熱衷,這也增加了本書的實用性。 本書結構 本書第1篇為基礎知識篇,主要講述如何安裝部署Linux操作系統(tǒng)以及對基本命令行工具的使用概述,幫助讀者快速掌握Linux基本知識要點,夯實基本功;赟hell腳本實現(xiàn)運維工作自動化,幫助運維人員擺脫周而復始地進行無效的工作,加快企業(yè)進入自動化、智能化的運維環(huán)境。具體包括: ◎部署操作系統(tǒng) ◎命令工具 ◎自動化運維 第2篇為網絡服務架構篇,主要討論網絡架構的規(guī)劃與部署,通過網站綜合案例提升讀者的應用能力,并針對常見問題提供故障排錯。通過部署監(jiān)控與安全軟件確保網絡服務的正常及安全運行。具體包括: ◎搭建網絡服務 ◎系統(tǒng)監(jiān)控 ◎網絡安全 第3篇為高級應用,主要描述當前主流的虛擬化及服務器高可用技術,滿足大型企業(yè)服務的生產需求。介紹集群及高可用軟件,這些軟件充分體現(xiàn)了在巨大數(shù)據(jù)壓力下產品業(yè)務的安全及性能優(yōu)勢。 ◎虛擬化技術 ◎集群及高可用 ◎數(shù)據(jù)庫復制 排版說明 關于本書中的排版,如果書中的命令是需要讀者輸入的,我們將使用等比例黑體加粗顯示;對于計算機輸出的命令返回結果,書中將使用等比例斜體字顯示。由于采用開源模式,所以Linux操作系統(tǒng)中擁有大量明文文本形式的配置文件,對于打開及修改文本文件中的內容,書中將把文件中的內容放置于方框中排版書寫;對于需要讀者注意的地方,書中會給出明確的注意提示。 本書讀者 本書可以作為學習Linux應用技術的一本指南,主要針對于希望進入Linux運維行業(yè)的新手,不過對于有經驗的專家而言,其中的部分章節(jié)同樣適用。另外,本書也可以作為計算機培訓參考教材。 關于配置文件及代碼 本書中部分主要的配置文件及代碼可以在GitHub上下載,下載地址為:https://github.com/jacobproject/operation。 勘誤 作者在編寫本書的過程中已經花了大量的時間對內容進行審核與校驗,但因為作者精力有限,書中難免出現(xiàn)一些錯漏,敬請廣大專家和讀者批評、指正。 關于本書,您有任何意見或建議可以發(fā)送郵件至ydh0011@163.com,或使用博客平臺http://manual.blog.51cto.com與作者交流。 致謝 由于是采用的業(yè)余時間編寫本書,占用了大量本應該可以和家人在一起的歡樂時光,在此感謝家人對我的支持與勉勵,感謝我的兒子(子墨)和女兒(紫悅)給家庭帶來的無限歡樂。感謝我所有的同事對此項任務的全力配合與支持。感謝我的學生對本書的期待,是你們的無形支持促成了我編寫本書。感謝生活中所有給予我?guī)椭呐笥,是你們的支持讓我不斷地進步與創(chuàng)新,不管是工作中還是生活中,好朋友都是我們成功的堅實后盾。感謝胡洋、梁佳鵬為本書第2版修訂提供的修改建議。感謝電子工業(yè)出版社的編輯董英為本書的出版提供了大力的支持。 丁明一北京
丁明一,領航眾達教育創(chuàng)始人,紅帽認證高級講師(RHCI),有著豐富的Linux系統(tǒng)運維以及講師經驗,培養(yǎng)學生兩千余名。精通Linux系統(tǒng)管理、生產環(huán)境大規(guī)模集中部署Linux環(huán)境、建立Shell腳本自動化管理平臺。主持部署多個LAMP網絡服務平臺、構建管理多個大型NginxWeb服務平臺,項目實施中利用Cacti與Nagios監(jiān)控平臺實現(xiàn)自動故障報警。對企業(yè)集群環(huán)境及高性能、高可用構架有深入的研究。擁有豐富的虛擬化技術使用經驗:Xen、KVM、VMware,利用虛擬化技術構建高效、綠色節(jié)能機房。對安全與調優(yōu)有獨特的理解,精通Linux防火墻、SELinux安全、系統(tǒng)性能調優(yōu)化。翻譯過多篇國外云計算解決方案文檔,熟悉國外主流云計算技術發(fā)展。
第1篇 基 礎 知 識
第1章 部署操作系統(tǒng) 2 1.1 光盤安裝Linux操作系統(tǒng) 2 1.1.1 操作系統(tǒng)版本的選擇 2 1.1.2 光盤安裝Linux系統(tǒng)案例 2 1.2 無人職守自動安裝Linux操作系統(tǒng) 11 1.2.1 大規(guī)模部署案例 11 1.2.2 PXE簡介 13 1.2.3 Kickstart技術 13 1.2.4 配置安裝服務器 14 1.2.5 自動化安裝案例 16 1.3 常見問題分析 26 第2章 命令工具 29 2.1 基本命令 30 2.1.1 目錄及文件的基本操作 30 2.1.2 查看文件內容 34 2.1.3 鏈接文件 37 2.1.4 壓縮及解壓 37 2.1.5 命令使用技巧 38 2.1.6 幫助 39 2.2 Vim文檔編輯 41 2.2.1 Vim工作模式 41 2.2.2 Vim光標操作 42 2.2.3 Vim編輯文檔 43 2.2.4 Vim查找與替換 43 2.2.5 Vim保存與退出 44 2.2.6 Vim小技巧 45 2.3 賬戶與安全 46 2.3.1 賬戶及組的概念 46 2.3.2 創(chuàng)建賬戶及組 46 2.3.3 修改賬戶及組 47 2.3.4 刪除賬戶及組 48 2.3.5 賬戶與組文件解析 49 2.3.6 文件及目錄權限 51 2.3.7 賬戶管理案例 53 2.3.8 ACL訪問控制權限 54 2.4 存儲管理 55 2.4.1 磁盤分區(qū) 55 2.4.2 格式化與掛載文件系統(tǒng) 59 2.4.3 LVM邏輯卷概述 61 2.4.4 創(chuàng)建LVM分區(qū)實例 63 2.4.5 修改LVM分區(qū)容量 67 2.4.6 刪除LVM分區(qū) 68 2.4.7 RAID磁盤陣列概述 69 2.4.8 RAID級別 69 2.4.9 創(chuàng)建與管理軟RAID實例 73 2.4.10 RAID性能測試 76 2.4.11 RAID故障模擬 77 2.5 軟件管理 78 2.5.1 Linux常用軟件包類型 78 2.5.2 RPM軟件包管理 78 2.5.3 使用YUM安裝軟件包 80 2.5.4 YUM使用技巧 82 2.5.5 源碼編譯安裝軟件 83 2.5.6 常見問題分析 84 2.5.7 服務管理 85 2.6 計劃任務 87 2.6.1 at一次性計劃任務 87 2.6.2 cron周期性計劃任務 88 2.6.3 計劃任務權限 89 2.7 性能監(jiān)控 89 2.7.1 監(jiān)控CPU使用情況――uptime命令 89 2.7.2 監(jiān)控內存及交換分區(qū)使用情況――free命令 89 2.7.3 監(jiān)控磁盤使用情況――df命令 90 2.7.4 監(jiān)控網絡使用情況――ip和netstat命令 91 2.7.5 監(jiān)控進程使用情況――ps和top命令 93 2.8 網絡配置 94 2.8.1 命令行設置網絡參數(shù) 94 2.8.2 文件修改網絡參數(shù) 96 2.8.3 網絡故障排錯 98 2.9 內核模塊 100 2.9.1 內核模塊存放位置 100 2.9.2 查看已加載內核模塊 100 2.9.3 加載與卸載內核模塊 101 2.9.4 修改內核參數(shù) 101 第3章 自動化運維 103 3.1 Shell簡介 103 3.2 Bash功能介紹 104 3.2.1 命令歷史 104 3.2.2 命令別名 104 3.2.3 管道與重定向 105 3.2.4 快捷鍵 106 3.3 Bash使用技巧 106 3.3.1 重定向技巧 106 3.3.2 命令序列使用技巧 107 3.3.3 作業(yè)控制技巧 107 3.3.4 花括號{}的使用技巧 108 3.4 變量 108 3.4.1 自定義變量 108 3.4.2 變量的使用范圍 109 3.4.3 環(huán)境變量 109 3.4.4 位置變量 111 3.4.5 變量的展開替換 111 3.4.6 數(shù)組 112 3.4.7 算術運算與測試 113 3.5 Shell引號 115 3.5.1 反斜線 115 3.5.2 單引號 116 3.5.3 雙引號 116 3.5.4 反引號 116 3.6 正則表達式 117 3.6.1 基本正則表達式(Regular Expression) 117 3.6.2 擴展正則表達式(Extended Regular Expression) 120 3.6.3 POSIX規(guī)范 121 3.6.4 GNU規(guī)范 122 3.7 Sed 122 3.7.1 Sed簡介 122 3.7.2 Sed基本語法格式 123 3.7.3 Sed入門范例 124 3.7.4 Sed指令與腳本 126 3.7.5 Sed高級應用 131 3.8 Awk 134 3.8.1 Awk簡介 134 3.8.2 Awk工作流程 135 3.8.3 Awk基本語法格式 135 3.8.4 Awk操作指令 137 3.8.5 Awk高級應用 141 3.9 Shell腳本 143 3.9.1 腳本格式范例 144 3.9.2 運行腳本的方式 145 3.9.3 Shell腳本簡單案例 145 3.9.4 判斷語句應用 148 3.9.5 循環(huán)語句應用 152 3.9.6 控制語句應用 155 3.9.7 Shell函數(shù)應用 157 3.9.8 綜合案例 159 3.9.9 圖形腳本 163 第2篇 網 絡 服 務 第4章 搭建網絡服務 168 4.1 NFS文件共享 168 4.1.1 NFS服務器配置 169 4.1.2 客戶端訪問NFS共享 171 4.1.3 NFS高級設置 172 4.1.4 常見問題分析 175 4.2 Samba文件共享 176 4.2.1 快速配置Samba服務器 176 4.2.2 訪問Samba共享 178 4.2.3 配置文件詳解 180 4.2.4 Samba應用案例 181 4.2.5 常見問題分析 184 4.3 vsftpd文件共享 185 4.3.1 FTP工作模式 185 4.3.2 安裝與管理vsftpd 186 4.3.3 配置文件解析 187 4.3.4 賬戶權限 188 4.3.5 vsftpd應用案例 189 4.3.6 常見問題分析 192 4.4 ProFTPD文件共享 193 4.4.1 安裝ProFTPD軟件 194 4.4.2 配置文件解析 194 4.4.3 ProFTPD權限設置 195 4.4.4 虛擬用戶應用案例 196 4.4.5 常見問題分析 199 4.5 Subversion版本控制 200 4.5.1 Subversion簡介 200 4.5.2 Subversion服務器對比 202 4.5.3 安裝Subversion軟件 203 4.5.4 svnserve服務器搭建 203 4.5.5 svnserve+SSH服務器搭建 208 4.5.6 Apache+SVN服務器搭建 209 4.5.7 對人協(xié)同編輯案例 211 4.5.8 常見問題 215 4.6 網絡存儲服務器 216 4.6.1 iSCSI網絡存儲 217 4.6.2 Rsync文件同步 220 4.6.3 Rsync+Inotify實現(xiàn)文件自動同步 225 4.7 DHCP服務器 231 4.7.1 安裝軟件 231 4.7.2 配置文件解析 232 4.7.3 DHCP應用案例 233 4.7.4 常見問題分析 234 4.8 DNS域名服務器 235 4.8.1 DNS簡介 235 4.8.2 安裝DNS軟件 237 4.8.3 配置文件解析 237 4.8.4 部署主域名服務器 241 4.8.5 部署從域名服務器 245 4.8.6 DNS視圖應用案例 247 4.8.7 常見問題分析 249 4.9 Apache網站服務器 250 4.9.1 Apache簡介 250 4.9.2 安裝Apache軟件 250 4.9.3 配置文件解析 252 4.9.4 虛擬主機應用案例 257 4.9.5 網站安全應用案例 258 4.9.6 常見問題分析 260 4.10 Nginx網站服務器 261 4.10.1 Nginx簡介 261 4.10.2 安裝Nginx軟件 261 4.10.3 配置文件解析 264 4.10.4 虛擬主機應用案例 266 4.10.5 SSL網站應用案例 268 4.10.6 HTTP響應狀態(tài)碼 270 4.11 數(shù)據(jù)庫基礎 271 4.11.1 MySQL數(shù)據(jù)庫簡介 271 4.11.2 安裝MySQL軟件 272 4.11.3 MySQL管理工具 273 4.11.4 數(shù)據(jù)庫定義語言 278 4.11.5 數(shù)據(jù)庫操作語言 282 4.11.6 數(shù)據(jù)庫查詢語言 284 4.11.7 MySQL與安全 285 4.11.8 MySQL數(shù)據(jù)庫備份與還原 288 4.12 動態(tài)網站架構案例 289 4.12.1 論壇系統(tǒng)應用案例 290 4.12.2 博客系統(tǒng)應用案例 296 第5章 系統(tǒng)監(jiān)控 300 5.1 Cacti監(jiān)控系統(tǒng) 300 5.1.1 簡介 300 5.1.2 Cacti監(jiān)控應用案例 301 5.2 Nagios監(jiān)控系統(tǒng) 309 5.2.1 簡介 309 5.2.2 Nagios監(jiān)控應用案例 310 第6章 網絡安全 322 6.1 防火墻 322 6.1.1 iptables防火墻語法格式 323 6.1.2 iptables防火墻應用案例 326 6.1.3 防火墻備份與還原 329 6.1.4 firewalld簡介 330 6.1.5 firewalld-cmd命令 331 6.2 SELinux簡介 334 6.2.1 SELinux配置文件 335 6.2.2 SELinux軟件包 336 6.2.3 SELinux安全上下文 336 6.2.4 SELinux排錯 337 6.2.5 修改安全上下文 339 6.2.6 查看與修改布爾值 341 6.2.7 SELinux應用案例 342 6.2.8 httpd相關的SELinux安全策略 342 6.2.9 FTP相關的SELinux安全策略 344 6.2.10 MySQL相關的SELinux安全策略 345 6.2.11 NFS相關的SELinux安全策略 345 6.2.12 Samba相關的SELinux安全策略 346 6.3 OpenVPN 347 6.3.1 OpenVPN簡介 347 6.3.2 安裝OpenVPN服務 348 6.3.3 OpenVPN客戶端 351 第3篇 高 級 應 用 第7章 虛擬化技術 354 7.1 虛擬化產品對比 354 7.1.1 VMware虛擬化技術 355 7.1.2 Xen虛擬化技術 355 7.1.3 KVM虛擬化技術 356 7.2 KVM虛擬化應用案例 356 7.2.1 安裝KVM組件 356 7.2.2 創(chuàng)建虛擬機操作系統(tǒng) 357 7.2.3 監(jiān)控虛擬機操作系統(tǒng) 362 7.2.4 命令工具使用技巧 364 7.2.5 虛擬存儲與虛擬網絡 369 第8章 集群及高可用 379 8.1 集群 379 8.1.1 LVS負載均衡簡介 379 8.1.2 基于NAT的LVS負載均衡 380 8.1.3 基于TUN的LVS負載均衡 381 8.1.4 基于DR的LVS負載均衡 382 8.1.5 LVS負載均衡調度算法 383 8.1.6 部署LVS服務 384 8.1.7 LVS負載均衡應用案例 387 8.1.8 常見問題分析 394 8.2 Keepalived雙機熱備 395 8.2.1 Keepalived簡介 395 8.2.2 VRRP協(xié)議簡介 395 8.2.3 安裝Keepalived服務 395 8.2.4 配置文件解析 396 8.2.5 Keepalived+LVS應用案例 398 8.2.6 常見問題分析 405 8.3 Squid代理服務器 406 8.3.1 Squid簡介 406 8.3.2 安裝Squid服務 406 8.3.3 常見代理服務器類型 406 8.3.4 配置文件解析 408 8.3.5 Squid應用案例 409 8.4 HAProxy負載均衡 413 8.4.1 HAProxy簡介 413 8.4.2 配置文件解析 413 8.4.3 HAProxy應用案例 416 8.5 Nginx高級應用 420 8.5.1 Nginx負載均衡 420 8.5.2 Nginx負載均衡案例 422 8.5.3 Nginx rewrite規(guī)則 425 8.6 MySQL高可用 429 8.6.1 MySQL復制 429 8.6.2 一步一步操作MySQL復制 430
4.8.6 DNS視圖應用案例
view語句用來創(chuàng)建視圖,視圖可以讓不同的網絡或主機在查詢同一個DNS記錄時得到不同的解析結果,也可以為不同的網絡或主機創(chuàng)建不同的域數(shù)據(jù)文件。大型企業(yè)可以利用視圖實現(xiàn)負載均衡,例如,當北京地區(qū)的網民訪問新浪網時,域名服務器可以將結果解析為北京本地的新浪網服務器,上海地區(qū)的網民訪問新浪網時,域名服務器會將上海的新浪網服務器IP地址作為結果返還給用戶。這樣所有的人訪問新浪網頁面查看新聞時,總是可以連接距離自己最近的服務器。 在BIND 9版本中,如果沒有在主配置文件中使用view語句,則BIND會自動將所有的域定義為一個大的視圖。通過在配置文件中使用view語句,并結合match-clients語句,實現(xiàn)不同用戶查詢相同記錄時所得的結果不同。這樣做的最大好處是可以讓北京地區(qū)的網民訪問新浪網時連接的是北京當?shù)氐姆⻊掌,而上海地區(qū)的網民需要連接新浪網時,DNS解析的結果為上海本地的新浪服務器。 一般我們會為同一個域創(chuàng)建多個視圖,不同的視圖對應不同的解析文件,此時需要注意的是,有多少個視圖就需要創(chuàng)建多少個對應的數(shù)據(jù)解析文件。當客戶端發(fā)送查詢請求后,服務器根據(jù)視圖內的match-clients語句來匹配客戶端主機,匹配成功后,服務器讀取特定的視圖內file指定的數(shù)據(jù)文件,并將結果返回給客戶端,如果沒有匹配成功,則繼續(xù)查詢下一個視圖。如果所有的試圖都未能匹配成功,服務器將返回無相關數(shù)據(jù)記錄的信息給客戶端。下面的案例通過修改主域名服務器的主配置文件演示視圖的應用,當172.16.0.88請求abc.com域的相關解析記錄時,服務器會讀取abc.com.zone.develop這個數(shù)據(jù)解析文件,172.16.0.89請求abc.com域的相關解析記錄時,服務器會讀取abc.com.zone.tech這個數(shù)據(jù)解析文件。注意,在此需要創(chuàng)建4個數(shù)據(jù)解析文件,相同域的正向域名解析文件有兩個,反向域名解析文件有兩個,只要在不同的數(shù)據(jù)解析文件中對相同的記錄給予不同的解析結果,就可實現(xiàn)不同的用戶得到的返回結果也不一樣。 只要根據(jù)自己的實際需要創(chuàng)建相應的數(shù)據(jù)文件,并在各個數(shù)據(jù)文件中對同一個數(shù)據(jù)記錄給出不同的解析數(shù)據(jù),即可實現(xiàn)智能DNS的分離解析功能。這里我們不可能將全北京或全上海的所有IP地址寫入match-clients,根據(jù)DNS查詢原理我們知道,所有的終端用戶訪問網絡時都會連接當?shù)豂SP服務商所提供的DNS服務器,這些服務商的DNS服務器會根據(jù)根服務器的提示迭代查詢到我們的權威服務器。也就是說,我們在match-clients后面僅需要填寫全國主要的ISP所提供的DNS服務器IP地址即可。不同地區(qū)服務商的DNS,我們給予不同的解析結果,最終所有的終端用戶會間接獲得正確的解析結果。這里我們不再給出具體的數(shù)據(jù)文件記錄,讀者可以根據(jù)實際情況自行填寫數(shù)據(jù)記錄。 以下為主配置文件named.conf實現(xiàn)視圖應用的案例模板,讀者根據(jù)自己的實際需要稍作修改即可。 。ùa詳見書中) 4.8.7 常見問題分析 。1)由于BIND主配置文件中,默認allow-query被設置為僅localhost可以進行DNS查詢,如果要開放DNS服務,則需要將allow-query修改為特定的主機或任意主機可以查詢的DNS服務。 (2)在主配置文件中,默認listen-on被設置為僅監(jiān)聽本地回環(huán)地址,這樣客戶端也是無法連接服務器進行查詢的。 。3)客戶端連接服務器發(fā)送的查詢請求使用的是UDP的53端口,而從服務器與主服務器同步數(shù)據(jù)時使用的是TCP的53端口,開放DNS服務后,要注意修改防火墻設置。 。4)在CentOS 7系統(tǒng)環(huán)境下,從域名服務器與主域名服務器同步數(shù)據(jù)時,默認SELinux會拒絕從遠程下載的數(shù)據(jù)文件寫入本地磁盤,此時需要修改SELinux的布爾值,方法如下: [root@centos7 ~]# setsebool -P named_write_master_zones=1 (5)配置文件問題。如果管理員在配置文件中的語法格式有錯誤,則named服務無法正常啟動。例如,如果在配置文件語句后面少了分號,啟動服務時會提示類似的提示信息:/etc/named.conf:15: missing ';' before 'view',提示named.conf文件第15行左右少“;”符號。 (6)文件與目錄權限。由于BIND相關進程都是以named用戶身份啟動的,當配置文件或數(shù)據(jù)文件的權限無法被正確讀取時,則系統(tǒng)將無法啟動BIND服務。通過查看/var/log/messages日志文件,可以看到none:0: open: /etc/named.conf: permission denied這樣的提示,說明BIND軟件啟動時無權讀取named.conf文件。類似的問題還可能出現(xiàn)在從服務器同步的時候,要求從服務器一定要把主服務器的數(shù)據(jù)文件同步到本地有讀寫權限的目錄下。 ……
你還可能感興趣
我要評論
|