Linux應(yīng)用基礎(chǔ)教程(基于CentOS 7)課件 第14章 Apache基礎(chǔ)_第1頁
Linux應(yīng)用基礎(chǔ)教程(基于CentOS 7)課件 第14章 Apache基礎(chǔ)_第2頁
Linux應(yīng)用基礎(chǔ)教程(基于CentOS 7)課件 第14章 Apache基礎(chǔ)_第3頁
Linux應(yīng)用基礎(chǔ)教程(基于CentOS 7)課件 第14章 Apache基礎(chǔ)_第4頁
Linux應(yīng)用基礎(chǔ)教程(基于CentOS 7)課件 第14章 Apache基礎(chǔ)_第5頁
已閱讀5頁,還剩93頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第14章

Apache基礎(chǔ)本章內(nèi)容要點(diǎn)Web服務(wù)和HTTP協(xié)議Apache的特性、結(jié)構(gòu)Apache的安裝、啟動(dòng)和管理Apache的配置文件語法Apache的認(rèn)證和授權(quán)Apache的虛擬主機(jī)Apache的日志管理Apache的SSL支持2024年5月29日2CreativeCommonsLicense(BY-NC-SA)本章學(xué)習(xí)目標(biāo)掌握Web組件的組成熟悉Apache的特性、結(jié)構(gòu)和運(yùn)行機(jī)制掌握Apache的安裝、啟動(dòng)與停止熟悉Apache的配置文件語法掌握別名和目錄容器的配置掌握主機(jī)訪問控制、認(rèn)證和授權(quán)的配置掌握基于IP和域名的虛擬主機(jī)配置掌握基于SSL協(xié)議的Apache配置2024年5月29日3CreativeCommonsLicense(BY-NC-SA)WWW和Apache2024年5月29日4CreativeCommonsLicense(BY-NC-SA)Web服務(wù)器簡(jiǎn)介WWW是一種交互式圖形界面的Internet服務(wù)WWW(WorldWideWeb),也稱Web具有強(qiáng)大的信息連接功能Internet上最熱門的服務(wù)之一成為人們?cè)诰W(wǎng)上查找、瀏覽信息的主要手段Web服務(wù)具有如下特點(diǎn)Web是圖形化的和易于導(dǎo)航的Web是與平臺(tái)無關(guān)的Web是分布式的Web是動(dòng)態(tài)的Web是交互的

2024年5月29日CreativeCommonsLicense(BY-NC-SA)5Web組件統(tǒng)一資源標(biāo)識(shí)符URIWeb客戶和Web服務(wù)器超文本傳輸協(xié)議HTTPWeb緩存和Web代理Cookie和Session機(jī)制Web內(nèi)容的構(gòu)建組件2024年5月29日CreativeCommonsLicense(BY-NC-SA)6Web組件——URI協(xié)議名稱—所使用的訪問協(xié)議。如:http、ftp等機(jī)器地址—數(shù)據(jù)所在的機(jī)器,IP地址/域名端口號(hào)—請(qǐng)求數(shù)據(jù)的數(shù)據(jù)源端口(可省略)路徑名—數(shù)據(jù)所在的相對(duì)路徑文件名—請(qǐng)求數(shù)據(jù)的文件名2024年5月29日CreativeCommonsLicense(BY-NC-SA)7協(xié)議名稱://機(jī)器地址:端口號(hào)/路徑名/文件名9191:8080/diveintopython3/whats-new.html9191:8021Web組件——客戶與服務(wù)器Web服務(wù)器的職責(zé)默認(rèn)監(jiān)聽TCP/IP的80端口接受Web客戶請(qǐng)求檢查請(qǐng)求的合法性,包括安全性屏蔽針對(duì)請(qǐng)求獲取并制作和處理數(shù)據(jù)把處理后的信息發(fā)送給提出請(qǐng)求的客戶機(jī)Web瀏覽器的職責(zé)生成一個(gè)Web請(qǐng)求(通常在單擊某個(gè)鏈接點(diǎn)時(shí)啟動(dòng))通過網(wǎng)絡(luò)將Web請(qǐng)求發(fā)送給某個(gè)Web服務(wù)器解釋服務(wù)器傳來的Web文檔,并把結(jié)果顯示在屏幕上2024年5月29日CreativeCommonsLicense(BY-NC-SA)8Web客戶與服務(wù)器通信過程每取一個(gè)網(wǎng)頁建立一次連接,讀完后馬上斷開;當(dāng)需要另一個(gè)網(wǎng)頁時(shí)重新連接,周而復(fù)始。2024年5月29日CreativeCommonsLicense(BY-NC-SA)9Web組件——HTTP協(xié)議(1)超文本傳輸協(xié)議(HyperTextTransferProtocol)是在Web上傳輸資源最常用的方式HTTP規(guī)定了客戶機(jī)和服務(wù)器等Web組件

相互交換信息的格式和含義HTTP協(xié)議的特點(diǎn)URI資源識(shí)別請(qǐng)求-響應(yīng)方式無狀態(tài)性攜帶元數(shù)據(jù)2024年5月29日CreativeCommonsLicense(BY-NC-SA)10Web組件——HTTP協(xié)議(2)HTTP協(xié)議的版本HTTP/1.0HTTP/1.1——當(dāng)前廣泛使用的協(xié)議標(biāo)準(zhǔn)。RFC7230,HTTP/1.1:MessageSyntaxandRoutingRFC7231,HTTP/1.1:SemanticsandContentRFC7232,HTTP/1.1:ConditionalRequestsRFC7233,HTTP/1.1:RangeRequestsRFC7234,HTTP/1.1:CachingRFC7235,HTTP/1.1:AuthenticationHTTP/22024年5月29日CreativeCommonsLicense(BY-NC-SA)11Web組件——HTTP協(xié)議(3)HTTP的連接方式2024年5月29日CreativeCommonsLicense(BY-NC-SA)12Web組件——HTTP協(xié)議(4)HTTP的協(xié)議頭(HTTPheader)是HTTP會(huì)話請(qǐng)求和響應(yīng)的一部分,用于客戶端和服務(wù)器進(jìn)行HTTP協(xié)議協(xié)商。請(qǐng)求頭(RequestHeaderFields)

(/html/rfc7231#section-5)響應(yīng)頭(ResponseHeaderFields)(/html/rfc7231#section-7)使用curl命令獲取HTTP的協(xié)議頭curl-s-I-v|egrep'^>|^<'2024年5月29日CreativeCommonsLicense(BY-NC-SA)13Web組件——HTTP協(xié)議(5)HTTP的請(qǐng)求方法HEADGETPOSTPUTDELETECONNECTOPTIONSTRACE2024年5月29日CreativeCommonsLicense(BY-NC-SA)14Web組件——HTTP協(xié)議(6)HTTP的響應(yīng)代碼信息1xx表明服務(wù)端接收了客戶端請(qǐng)求,客戶端繼續(xù)發(fā)送請(qǐng)求成功2xx客戶端發(fā)送的請(qǐng)求被服務(wù)端成功接收并成功進(jìn)行了處理重定向3xx服務(wù)端給客戶端返回用于重定向的信息客戶端錯(cuò)誤4xx客戶端的請(qǐng)求有非法內(nèi)容服務(wù)器錯(cuò)誤5xx服務(wù)端未能正常處理客戶端的請(qǐng)求而出現(xiàn)意外錯(cuò)誤2024年5月29日CreativeCommonsLicense(BY-NC-SA)15Web組件——

Web緩存和Web代理Web緩存HTTP協(xié)議定義了客戶端緩存機(jī)制。架設(shè)Web緩存服務(wù)器和內(nèi)容分發(fā)網(wǎng)絡(luò)(ContentDeliveryNetwork,CDN)可以加快客戶端訪問。Web代理同時(shí)扮演著客戶和服務(wù)器的雙重身份對(duì)于Web客戶來說是服務(wù)器對(duì)于Web服務(wù)器來說是客戶還可以過濾不希望的Web請(qǐng)求,實(shí)現(xiàn)高速緩存等2024年5月29日CreativeCommonsLicense(BY-NC-SA)16Web組件——

Cookie和Session機(jī)制HTTP是一個(gè)無狀態(tài)協(xié)議,因此當(dāng)Web服務(wù)器將Web客戶請(qǐng)求的響應(yīng)發(fā)送出去后,服務(wù)器便不必保存任何信息了。Web服務(wù)器可以指示W(wǎng)eb客戶以存儲(chǔ)Cookie的方式在一系列請(qǐng)求和響應(yīng)之間維持狀態(tài),而服務(wù)器端則采用Session機(jī)制保持狀態(tài)。2024年5月29日CreativeCommonsLicense(BY-NC-SA)17Web組件——

Web內(nèi)容的構(gòu)建組件使用HTML/XHTML、CSS、Javascript構(gòu)建靜態(tài)Web頁面使用CGI、PHP、Python、Ruby、JavaServlet、Node.js等技術(shù)構(gòu)建動(dòng)態(tài)Web應(yīng)用使用各種數(shù)據(jù)發(fā)布格式及語言(XML、YAML、JSON、RSS/Atom)交換數(shù)據(jù)2024年5月29日CreativeCommonsLicense(BY-NC-SA)18HTML超文本標(biāo)記語言(HTML)是為純文本格式的超文本文檔提供了一種標(biāo)準(zhǔn)的表述方式HTML是由標(biāo)準(zhǔn)通用標(biāo)記語言(SGML)演化而來的HTML可以使用標(biāo)記格式化文本、引用圖片或嵌入其他文檔的超鏈接有關(guān)HTML和XHTML的更多信息,請(qǐng)參見:/MarkUp/2024年5月29日CreativeCommonsLicense(BY-NC-SA)19Linux下常用的Web服務(wù)器ApacheNginx/Lighttpd/2024年5月29日CreativeCommonsLicense(BY-NC-SA)20Apache簡(jiǎn)介Apache是一個(gè)知名的開源Web服務(wù)器由NCSAhttpd1.3經(jīng)過較為完整的代碼重寫名稱Apache意為APatchyServer,即它是基于現(xiàn)存的代碼和一系列的Patch文件Apache軟件基金會(huì)(ASF,ApacheSoftwareFoundation)

維護(hù)2012.02——Apache2.4版發(fā)行在功能、效率、擴(kuò)展及速度方面居于領(lǐng)先的地位根據(jù)Netcraft提供的最新調(diào)查資料,ApacheWeb服務(wù)器是使用比例最高的Web服務(wù)器2024年5月29日CreativeCommonsLicense(BY-NC-SA)21Apache的特性開放源代碼、跨平臺(tái)應(yīng)用。模塊化設(shè)計(jì)、運(yùn)行穩(wěn)定、良好的安全性。實(shí)現(xiàn)了動(dòng)態(tài)共享對(duì)象(DSO),允許在運(yùn)行時(shí)動(dòng)態(tài)裝載功能模塊。支持最新的HTTP1.1協(xié)議。支持虛擬主機(jī)、支持HTTP認(rèn)證、集成了代理服務(wù)、支持安全Socket層(SSL)。使用簡(jiǎn)單而強(qiáng)有力的基于文本的配置文件、具有可定制的服務(wù)器日志。支持通用網(wǎng)關(guān)接口CGI、FastCGI、服務(wù)器端包含命令(SSI)。支持PHP/Perl/Python/Ruby/JavaServlets等腳本編程語言。支持第三方軟件開發(fā)商提供的大量功能模塊。2024年5月29日CreativeCommonsLicense(BY-NC-SA)22參考

/docs/2.4/new_features_2_4.html查看Apache2.4版的新特性Apache的結(jié)構(gòu)Apache由內(nèi)核、標(biāo)準(zhǔn)模塊和第三方提供的模塊三個(gè)層次組成模塊信息:2024年5月29日CreativeCommonsLicense(BY-NC-SA)23Apache的運(yùn)行模式Apache2.X使用新的多處理模塊(Multi-ProcessingModule,MPM)在服務(wù)器處理多個(gè)請(qǐng)求時(shí)控制Apache的運(yùn)行方式Apache中的3種運(yùn)行模式多進(jìn)程模型預(yù)派生(Profork)MPM多進(jìn)程多線程混合模型工作者(Worker)MPM事件(Event)MPM2024年5月29日CreativeCommonsLicense(BY-NC-SA)24CentOS下的Apache2024年5月29日25CreativeCommonsLicense(BY-NC-SA)Apache服務(wù)概覽軟件包:httpd,httpd-devel,httpd-manual服務(wù)類型:由Systemd啟動(dòng)的守護(hù)進(jìn)程配置單元:/usr/lib/systemd/system/httpd.service守護(hù)進(jìn)程:/usr/sbin/httpd端口:80(http),443(https)配置:/etc/httpd/Web文檔:/var/www/相關(guān)軟件包:mod_ssl2024年5月29日CreativeCommonsLicense(BY-NC-SA)26Apache的安裝和啟動(dòng)安裝#yuminstallhttpdhttpd-manual管理httpd服務(wù)#systemctl{start|stop|status|restart|reload}httpd#systemctl{enable|disable}httpd檢查配置文件的正確性#apachectl-t

#httpd-t2024年5月29日CreativeCommonsLicense(BY-NC-SA)27Apache的相關(guān)文件管理工具/usr/sbin/apachectl:ApacheHTTP服務(wù)器控制接口/usr/bin/ab:ApacheHTTP服務(wù)器性能測(cè)試工具/usr/bin/logresolve:將Apache日志文件中的IP地址解析為主機(jī)名/usr/sbin/rotatelogs:

滾動(dòng)Apache日志而無須終止服務(wù)器2024年5月29日CreativeCommonsLicense(BY-NC-SA)28查看Apache的相關(guān)信息顯示Apache的編譯參數(shù)#apachectl-V或httpd-V查看已經(jīng)被編譯的模塊#apachectl-l或httpd-l列出所有模塊,包括mod_so加載的DSO#apachectl-M或httpd-M2024年5月29日CreativeCommonsLicense(BY-NC-SA)29CentOS下Apache的默認(rèn)配置服務(wù)器的根目錄:/etc/httpd運(yùn)行Apache的用戶:apache運(yùn)行Apache的組:apache監(jiān)聽端口:80模塊存放路徑:/usr/lib/httpd/modulespreforkMPM運(yùn)行方式的參數(shù):StartServers8MinSpareServers5MaxSpareServers20MaxClients1502024年5月29日CreativeCommonsLicense(BY-NC-SA)30CentOS下Apache的默認(rèn)配置

(續(xù))默認(rèn)的Web文檔/var/www/html/:根文檔目錄/var/www/cgi-bin/:CGI程序目錄/var/www/error/:默認(rèn)的錯(cuò)誤文檔目錄/var/www/icons/:與icons相關(guān)的圖片目錄默認(rèn)的日志文件/var/log/httpd/access_log:訪問日志/var/log/httpd/error_log:錯(cuò)誤日志2024年5月29日CreativeCommonsLicense(BY-NC-SA)31CentOS下Apache的默認(rèn)配置

(續(xù)2)Apache的配置文件/etc/httpd/conf/httpd.conf:Apache的主配置文件/etc/httpd/conf.d/*.conf:被主配置文件包含的配置文件/etc/httpd/conf/magic:mod_mime_magic模塊使用的Magic數(shù)據(jù),無需配置/etc/logrotate.d/httpd:Apache的日志滾動(dòng)配置文件/etc/sysconfig/httpd:httpd守護(hù)進(jìn)程的啟動(dòng)配置文件2024年5月29日CreativeCommonsLicense(BY-NC-SA)32Apache配置基礎(chǔ)2024年5月29日33CreativeCommonsLicense(BY-NC-SA)Apache配置文件種類主配置文件/etc/httpd/conf/httpd.conf被主配置文件包含的配置文件/etc/httpd/conf.d/*.conf可以用Include/IncludeOptional指令定義被包含的配置文件基于目錄的配置文件使用分布在網(wǎng)站目錄樹中的特殊文件來進(jìn)行分散配置這些特殊的文件默認(rèn)為.htaccess也可以用

AccessFileName

指令來改變它的名字2024年5月29日CreativeCommonsLicense(BY-NC-SA)34配置文件的基本語法每一行包含一個(gè)指令,在行尾使用反斜杠”\”可以表示續(xù)行配置文件中的指令不區(qū)分大小寫,但是指令的參數(shù)(argument)通常區(qū)分大小寫以”#”開頭的行被視為注解并在讀取時(shí)被忽略。注解不能出現(xiàn)在指令的后邊空白行和指令前的空白字符將在讀取時(shí)被忽略,因此可以采用縮進(jìn)以保持配置層次的清晰2024年5月29日CreativeCommonsLicense(BY-NC-SA)35Apache的兩種編譯方式靜態(tài)編譯將核心模塊和所需要的模塊一次性編譯優(yōu)點(diǎn):運(yùn)行速度快缺點(diǎn):要增加或刪除模塊必須重新編譯整個(gè)Apache動(dòng)態(tài)編譯只編譯核心模塊和DSO(動(dòng)態(tài)共享對(duì)象)模塊—mod_so優(yōu)點(diǎn):各模塊可以獨(dú)立編譯,并可隨時(shí)用LoadModule指令加載,用于特定模塊的指令可以用<IfModule>指令包含起來,使之有條件地生效。缺點(diǎn):運(yùn)行速度稍慢2024年5月29日CreativeCommonsLicense(BY-NC-SA)36Apache的模塊查看Apache的編譯參數(shù)#httpd-lRHEL/CentOS中的Apache是動(dòng)態(tài)編譯的mod_so.c模塊使Apache支持DynamicSharedObjects(DSO)可在不重新編譯Apache的情況下使用APacheeXtenSion(apxs)編譯Apache的其他模塊所有動(dòng)態(tài)編譯的模塊在使用時(shí)需要使用LoadModule指令加載LoadModulerewrite_modulemodules/mod_rewrite.so2024年5月29日CreativeCommonsLicense(BY-NC-SA)37獲得Apache配置的幫助查看配置文件的MAN手冊(cè)#manhttpd.conf查看本機(jī)安裝的HTML手冊(cè)#w3mhttp://localhost/manual/輸出Apache的指令列表#httpd-L或apachectl-L2024年5月29日CreativeCommonsLicense(BY-NC-SA)38Apache的基本配置指令A(yù)pache的服務(wù)器標(biāo)識(shí)指令A(yù)pache的文件定位指令A(yù)pacheMPM的相關(guān)指令A(yù)pache常用的全局配置指令2024年5月29日CreativeCommonsLicense(BY-NC-SA)39Apache的服務(wù)器標(biāo)識(shí)指令ServerName:服務(wù)器用于辨識(shí)自己的主機(jī)名和端口號(hào)ServerAdmin:服務(wù)器返回給客戶端的錯(cuò)誤信息中包含的管理員郵件地址ServerSignature:配置服務(wù)器生成頁面的頁腳的信息ServerTokens:控制了服務(wù)器回應(yīng)給客戶端的”Server:“應(yīng)答頭是否包含關(guān)于服務(wù)器操作系統(tǒng)類型和編譯進(jìn)的模塊描述信息UseCanonicalName:決定Apache如何構(gòu)造URL中SERVER_NAME和SERVER_PORT的指令2024年5月29日CreativeCommonsLicense(BY-NC-SA)40Apache的文件定位指令ServerRoot:指定服務(wù)器安裝的基礎(chǔ)目錄DocumentRoot:組成網(wǎng)絡(luò)上可見的主文檔樹的根目錄ErrorLog:存放錯(cuò)誤日志的位置CustomLog:訪問日志文件的位置LockFile:Apache使用的鎖文件的位置PidFile:設(shè)置服務(wù)器用于記錄父進(jìn)程(監(jiān)控進(jìn)程)PID的文件2024年5月29日CreativeCommonsLicense(BY-NC-SA)41ApacheProforkMPM

的相關(guān)指令

StartServers:?jiǎn)?dòng)時(shí)服務(wù)器啟動(dòng)的進(jìn)程數(shù)MinSpareServers:保有的備用進(jìn)程的最小數(shù)目MaxSpareServers:保有的備用進(jìn)程的最大數(shù)目MaxClients:服務(wù)器允許啟動(dòng)的最大進(jìn)程數(shù)MaxRequestsPerChild:一個(gè)服務(wù)進(jìn)程允許的最大請(qǐng)求數(shù)2024年5月29日CreativeCommonsLicense(BY-NC-SA)42Apache常用的全局配置指令Listen:指定監(jiān)聽的IP地址、端口號(hào),默認(rèn)為80User:指定運(yùn)行Apache服務(wù)的用戶名,默認(rèn)為apacheGroup:指定運(yùn)行Apache服務(wù)的組名,默認(rèn)為apacheLogLevel:指定錯(cuò)誤日志的記錄級(jí)別Timeout:指定網(wǎng)絡(luò)連接超時(shí),默認(rèn)為120(單位為秒)KeepAlive:指定是否保持連接,默認(rèn)為OffKeepAliveTimeout:保持連接狀態(tài)時(shí)的超時(shí)時(shí)間,默認(rèn)為15(單位為秒)MaxKeepAliveRequests:保持連接狀態(tài)時(shí),每次連接最多請(qǐng)求文件數(shù),默認(rèn)為100DirectoryIndex:指定默認(rèn)的索引頁文件,默認(rèn)為index.htmlindex.html.varIndexOptions:指定服務(wù)器所生成的列表頁面的輸出選項(xiàng)2024年5月29日CreativeCommonsLicense(BY-NC-SA)43Apache的配置容器<Directory></Directory>用于對(duì)指定的目錄(可使用Shell通配符)實(shí)施額外的配置<Files></Files>用于對(duì)指定的文件(可使用Shell通配符)實(shí)施額外的配置<Location></Location>用于對(duì)指定的URL(可使用Shell通配符)實(shí)施額外的配置<Limit></Limit>用于對(duì)指定的HTTP方法實(shí)施額外的配置<LimitExcept></LimitExcept>用于對(duì)指定的HTTP方法之外的方法實(shí)施額外的配置2024年5月29日CreativeCommonsLicense(BY-NC-SA)44Apache的配置容器(續(xù))功能與Directory、Files、Location容器相同,在描述目錄、文件URL時(shí)可以使用正則表達(dá)式<DirectoryMatch></DirectoryMatch><FilesMatch></FilesMatch><LocationMatch></LocationMatch>虛擬主機(jī)容器<VirtualHost></VirtualHost>用于對(duì)虛擬主機(jī)實(shí)施額外的配置(一臺(tái)計(jì)算機(jī)支持多個(gè)站點(diǎn)的能力)2024年5月29日CreativeCommonsLicense(BY-NC-SA)45Apache主配置文件的組成

和配置指令的作用域Apache主配置文件的組成全局環(huán)境配置主服務(wù)器配置虛擬主機(jī)配置配置指令的作用域配置指令作用范圍可以是全局或只能在容器serverconfig、virtualhost、directory、.htaccess查看指令的作用域Apache手冊(cè)中指令的作用域(Context)項(xiàng)#httpd-L或apachectl-L2024年5月29日CreativeCommonsLicense(BY-NC-SA)46Apache的基本配置2024年5月29日47CreativeCommonsLicense(BY-NC-SA)主機(jī)訪問控制簡(jiǎn)介Apache可以根據(jù)訪問者的IP地址或域名來決定是否為之提供資源,也稱強(qiáng)驗(yàn)證訪問控制的功能由

mod_authz_core和mod_authz_host

模塊提供使用Require指令實(shí)現(xiàn)訪問控制2024年5月29日CreativeCommonsLicense(BY-NC-SA)48訪問控制的指令的作用范圍可用在<Location>、<Directory>、<Files>和<Limit>容器中既可以用在主配置文件或其包含的配置文件中,也可以用在.htaccess配置文件中既可以放在“主配置”部分用于控制主服務(wù)器;也可以放在<VirtualHost>容器中用于控制虛擬主機(jī)2024年5月29日CreativeCommonsLicense(BY-NC-SA)49Require

指令允許所有主機(jī)訪問Requireallgranted拒絕所有主機(jī)訪問Requirealldenied僅允許本地主機(jī)訪問Requirelocal允許或[禁止]指定的主機(jī)或域訪問Require[not]host<主機(jī)名或域名列表>允許或[禁止]指定IP地址的訪問Require[not]ip<IP地址或網(wǎng)段列表>2024年5月29日CreativeCommonsLicense(BY-NC-SA)50訪問控制舉例2024年5月29日CreativeCommonsLicense(BY-NC-SA)51RequireipRequireip10172.20192.168.2Requireip/Requireip/16/24RequirehostRequirehostRequirehost.net.訪問控制舉例續(xù)2024年5月29日CreativeCommonsLicense(BY-NC-SA)52<RequireAll>RequireallgrantedRequirenotip65</RequireAll><RequireAll>Requireip/24Requirenotip65</RequireAll>別名(Alias)別名可以將文檔根目錄(/var/www/html)以外的內(nèi)容加入站點(diǎn),也稱虛擬目錄Alias指令A(yù)lias/URL-path"/path/to/other/directory/“將以/URL-path開頭的URL映射到/path/to/other/directory中的文件Alias舉例Alias/manual"/var/www/manual“Alias/ks/kickstart2024年5月29日CreativeCommonsLicense(BY-NC-SA)53容器選項(xiàng)配置(Options)Options指令用于控制當(dāng)前容器中可以使用哪些服務(wù)器特性可以出現(xiàn)在主配置文件或.htaccess配置文件中<Directory>、<Location>容器中Options指令格式Options[+|-]Option1[+|-]Option2……選項(xiàng)之前添加加號(hào)(+)表示添加此特性選項(xiàng)之前添加減號(hào)(-)表示去掉此特性2024年5月29日CreativeCommonsLicense(BY-NC-SA)54Options指令的常用選項(xiàng)All:除MultiViews之外的所有特性。默認(rèn)設(shè)置None:將不啟用任何額外特性ExecCGI:允許使用mod_cgi執(zhí)行CGI腳本FollowSymLinks:服務(wù)器允許在此目錄中使用符號(hào)連接Indexes:若一個(gè)映射到目錄的URL被請(qǐng)求,而此目錄中又沒有DirectoryIndex指定的文件(例如index.html),則服務(wù)器會(huì)返回由mod_autoindex模塊生成的一個(gè)格式化后的目錄列表MultiViews:允許使用mod_negotiation提供內(nèi)容協(xié)商的“多重視圖”2024年5月29日CreativeCommonsLicense(BY-NC-SA)55IndexOptions指令用于配置mod_autoindex模塊生成目錄列表的顯示特性IndexOptions指令的常用選項(xiàng)FancyIndexing對(duì)每種類型的文件前加上一個(gè)小圖標(biāo)以示區(qū)別VersionSort對(duì)同一個(gè)軟件的多個(gè)版本進(jìn)行排序NameWidth=*文件名子段自動(dòng)適應(yīng)當(dāng)前目錄下最長(zhǎng)文件名FoldersFirst讓目錄列在前面(類似于資源管理器)2024年5月29日CreativeCommonsLicense(BY-NC-SA)56主機(jī)訪問控制和別名

的配置舉例使用別名配置對(duì)yum倉(cāng)庫(kù)和Kickstart的訪問2024年5月29日CreativeCommonsLicense(BY-NC-SA)57Alias/mirrors/var/ftp/mirrors<Directory/var/ftp/mirrors>OptionsIndexesFollowSymlinksIndexOptions+DescriptionWidth=*+FoldersFirstRequirelocalRequireip/24/24/24</Directory>Alias/ks/kickstart<Directory/kickstart>OptionsIndexesFollowSymlinksIndexOptions+DescriptionWidth=*+FoldersFirstRequirelocalRequireip/24/24/24</Directory>配置每個(gè)用戶的Web站點(diǎn)使擁有用戶賬號(hào)的每個(gè)用戶都能夠架設(shè)自己?jiǎn)为?dú)的Web站點(diǎn)使用mod_userdir模塊,可以用如下的URLhttp://IPorFQDN/~username訪問系統(tǒng)用戶username的Web站點(diǎn)使用UserDir指令指定用戶站點(diǎn)的文檔根目錄配置步驟修改配置文件(啟用mod_userdir模塊并配置每個(gè)用戶Web站點(diǎn)目錄的訪問控制)設(shè)置$HOME對(duì)其他目錄的可執(zhí)行權(quán)限2024年5月29日CreativeCommonsLicense(BY-NC-SA)58基于目錄的配置文件可以使用.htaccess文件改變主配置文件中的配置,但是它只能設(shè)置對(duì)目錄的訪問控制,這個(gè)目錄就是.htaccess文件存放的目錄使用.htaccess文件的場(chǎng)合當(dāng)內(nèi)容提供者需要針對(duì)目錄改變服務(wù)器的配置而對(duì)服務(wù)器系統(tǒng)沒有root權(quán)限時(shí)管理員不愿意頻繁修改配置并重啟服務(wù),因?yàn)樾薷?htaccess文件后立即生效,無需重新啟動(dòng)服務(wù)2024年5月29日CreativeCommonsLicense(BY-NC-SA)59使用.htaccess文件的方法首先在主配置文件中啟用并控制對(duì).htaccess文件的使用AllowOverrideall|none然后在需要覆蓋主配置文件的目錄下生成.htaccess文件使用.htaccess文件舉例2024年5月29日CreativeCommonsLicense(BY-NC-SA)60認(rèn)證和授權(quán)2024年5月29日61CreativeCommonsLicense(BY-NC-SA)認(rèn)證和授權(quán)簡(jiǎn)介Apache的認(rèn)證和授權(quán)(基于用戶的訪問控制)認(rèn)證和授權(quán)是Apache允許指定用戶使用用戶名和口令訪問特定資源的一種方式認(rèn)證(Authentication)是指任何識(shí)別用戶身份的過程授權(quán)(Authorization)是允許特定用戶訪問特定區(qū)域或信息的過程認(rèn)證和授權(quán)也稱弱驗(yàn)證認(rèn)證和授權(quán)的配置指令既可以出現(xiàn)在主(或其包含的)配置文件的<Directory>或<Location>容器中,也可以出現(xiàn)在./htaccess文件中2024年5月29日CreativeCommonsLicense(BY-NC-SA)62兩種認(rèn)證基本認(rèn)證摘要認(rèn)證Apache模塊mod_auth_basicmod_auth_digest證書管理程序htpasswdhtdigest瀏覽器支持所有瀏覽器均支持絕大多數(shù)瀏覽器均支持特點(diǎn)可用于任何認(rèn)證領(lǐng)域只用于指定的認(rèn)證領(lǐng)域在網(wǎng)絡(luò)中傳輸Base64編碼的明文口令,不安全在網(wǎng)絡(luò)中只傳輸質(zhì)詢碼和摘要信息,不傳輸口令,更安全2024年5月29日CreativeCommonsLicense(BY-NC-SA)63認(rèn)證和授權(quán)的證書存儲(chǔ)

和相關(guān)模塊通常使用純文本文件存儲(chǔ)認(rèn)證口令證書為了加快檢索可以使用DBM數(shù)據(jù)庫(kù)為了與其他應(yīng)用集成可以使用關(guān)系數(shù)據(jù)庫(kù)或LDAP存儲(chǔ)2024年5月29日CreativeCommonsLicense(BY-NC-SA)64認(rèn)證授權(quán)純文本文件mod_authn_filemod_authz_usermod_authz_groupfileDBM數(shù)據(jù)庫(kù)mod_authn_dbmmod_authz_dbm關(guān)系數(shù)據(jù)庫(kù)mod_authn_dbdLDAPmod_authnz_ldap認(rèn)證相關(guān)指令定義受保護(hù)領(lǐng)域的名稱AuthName<認(rèn)證領(lǐng)域名稱>定義使用的認(rèn)證方式AuthTypeBasic或Digest指定認(rèn)證組文件的位置AuthGroupFile<文件名>指定認(rèn)證口令文件的位置AuthUserFile<文件名>指定摘需要認(rèn)證的URI(僅用于摘要認(rèn)證)AuthDigestDomainURI[URI]…2024年5月29日CreativeCommonsLicense(BY-NC-SA)65授權(quán)當(dāng)使用認(rèn)證指令配置了認(rèn)證之后,還需要使用Require指令為指定的用戶或組進(jìn)行授權(quán)Require指令的三種使用格式授權(quán)給指定的一個(gè)或多個(gè)用戶Requireuser用戶名[用戶名]……授權(quán)給指定的一個(gè)或多個(gè)組Requiregroup組名[組名]……授權(quán)給認(rèn)證口令文件中的所有用戶Requirevalid-user

2024年5月29日CreativeCommonsLicense(BY-NC-SA)66管理基本認(rèn)證的口令文件

——htpasswd命令添加一個(gè)認(rèn)證用戶的同時(shí)創(chuàng)建認(rèn)證口令文件#htpasswd-cm<認(rèn)證口令文件名><用戶名>向現(xiàn)存的口令文件中添加用戶或修改已存在的用戶的口令 #htpasswd-m<認(rèn)證口令文件名><用戶名>從認(rèn)證口令文件中刪除用戶及其口令 #htpasswd-D<認(rèn)證口令文件名><用戶名>2024年5月29日CreativeCommonsLicense(BY-NC-SA)67-m參數(shù)可以生成MD5算法的加密口令(CentOS7中為默認(rèn)參數(shù))-b參數(shù)用于在命令行上直接指定用戶名及其口令,而非交互模式管理摘要認(rèn)證的口令文件

——htdigest命令添加一個(gè)認(rèn)證用戶的同時(shí)創(chuàng)建認(rèn)證口令文件#htdigest-c<認(rèn)證口令文件名><認(rèn)證領(lǐng)域><用戶名>向現(xiàn)存的口令文件中添加用戶或修改已存在的用戶的口令 #htdigest<認(rèn)證口令文件名><認(rèn)證領(lǐng)域><用戶名>2024年5月29日CreativeCommonsLicense(BY-NC-SA)68沒有提供從認(rèn)證口令文件中刪除指定用戶及其口令的功能,需要直接編輯認(rèn)證口令文件管理認(rèn)證組文件Apache支持認(rèn)證組文件Apache沒有提供創(chuàng)建認(rèn)證組文件的命令認(rèn)證組文件只是一個(gè)文本文件,可以使用任何文本編輯器創(chuàng)建并修改認(rèn)證組文件中每一行的格式2024年5月29日CreativeCommonsLicense(BY-NC-SA)69組名:用戶名用戶名……在認(rèn)證組文件中指定的用戶名,必須先使用htpasswd

htdigest命令添加到認(rèn)證口令文件中認(rèn)證證書的權(quán)限認(rèn)證證書包擴(kuò)認(rèn)證口令文件和/或認(rèn)證組文件基于安全因素的考慮認(rèn)證證書不應(yīng)該存放在DocumentRoot指令指定的目錄或其子目錄下建議存放在/etc/httpd/passwd子目錄或與虛擬主機(jī)根文檔目錄同級(jí)別的conf或passwd子目錄下確保執(zhí)行Apache守護(hù)進(jìn)程的用戶(CentOS默認(rèn)為apache)能讀取認(rèn)證證書確保apache用戶能進(jìn)入存放認(rèn)證證書的目錄確保apache用戶能讀取認(rèn)證證書文件2024年5月29日CreativeCommonsLicense(BY-NC-SA)70認(rèn)證和授權(quán)配置舉例在主配置文件中配置認(rèn)證和授權(quán)在.htaccess文件中配置認(rèn)證和授權(quán)2024年5月29日CreativeCommonsLicense(BY-NC-SA)71虛擬主機(jī)2024年5月29日72CreativeCommonsLicense(BY-NC-SA)虛擬主機(jī)簡(jiǎn)介在一臺(tái)Web服務(wù)器上,通過多個(gè)獨(dú)立的IP地址、域名或端口號(hào)提供不同的Web站點(diǎn)基于IP地址的虛擬主機(jī)每個(gè)網(wǎng)站擁有不同的IP地址通過訪問服務(wù)器上不同的IP地址訪問不同的網(wǎng)站基于域名的虛擬主機(jī)所有的虛擬主機(jī)可以共享同一個(gè)IP地址使用不同的域名來訪問不同的網(wǎng)站基于端口的虛擬主機(jī)所有的虛擬主機(jī)可以共享同一個(gè)IP地址各虛擬主機(jī)之間通過不同的端口號(hào)進(jìn)行區(qū)分2024年5月29日CreativeCommonsLicense(BY-NC-SA)73虛擬主機(jī)注意事項(xiàng)可以在一臺(tái)主機(jī)上混合配置不同方式的虛擬主機(jī)在一臺(tái)主機(jī)上配置基于IP的虛擬主機(jī)時(shí)既可以安裝配置多個(gè)網(wǎng)絡(luò)接口也可以為一個(gè)網(wǎng)絡(luò)接口綁定多個(gè)IP地址無論哪一種虛擬主機(jī),都應(yīng)該配置域名解析只有基于IP的虛擬主機(jī)可以使用IP地址和域名訪問基于域名的虛擬主機(jī)只能使用域名訪問2024年5月29日CreativeCommonsLicense(BY-NC-SA)74虛擬主機(jī)配置指令VirtualHost容器內(nèi)使用的指令ServerName:用于指定虛擬主機(jī)的名稱和端口號(hào)ServerAdmin:用于指定虛擬主機(jī)的管理員E-mail地址DocumentRoot:用于指定虛擬主機(jī)的根文檔目錄ErrorLog:用于指定虛擬主機(jī)的錯(cuò)誤日志存放路徑CustomLog:用于指定虛擬主機(jī)的訪問日志存放路徑使用<Directory>、<Location>等容器設(shè)置訪問控制等VirtualHost容器之外使用的指令NameVirtualHost:用于為一個(gè)和多個(gè)基于域名的虛擬主機(jī)指定一個(gè)IP地址和端口在Apache2.4版中,可省略此指令2024年5月29日CreativeCommonsLicense(BY-NC-SA)75主服務(wù)器配置

與虛擬主機(jī)配置的關(guān)系覆蓋性VirtualHost容器中的指令會(huì)覆蓋主服務(wù)器范圍內(nèi)同名的配置指令主服務(wù)器(MainServer)范圍內(nèi)的配置指令(在所有<VirtualHost>容器之外的指令,包括主配置文件使用Include包含的配置文件中的指令)僅在它們沒有被VirtualHost容器的配置覆蓋時(shí)才起作用繼承性每個(gè)虛擬主機(jī)都會(huì)從主服務(wù)器配置繼承相關(guān)的配置例如:虛擬主機(jī)會(huì)繼承主服務(wù)器的DirectoryIndex2024年5月29日CreativeCommonsLicense(BY-NC-SA)76使用單獨(dú)的

虛擬主機(jī)配置文件配置虛擬主機(jī)時(shí)可以在主配置文件中進(jìn)行為了方便維護(hù)虛擬主機(jī)的配置,通常為某個(gè)虛擬主機(jī)或某組虛擬主機(jī)使用單獨(dú)的配置文件2024年5月29日CreativeCommonsLicense(BY-NC-SA)77修改主配置文件

/etc/htpd/conf/httpd.confIncludevhosts.d/*.conf創(chuàng)建存放虛擬主機(jī)配置文件的目錄#mkdir/etc/httpd/vhosts.d配置基于IP的虛擬主機(jī)基于IP的虛擬主機(jī)的配置步驟在一臺(tái)主機(jī)上配置多個(gè)IP地址并配置域名解析創(chuàng)建文檔目錄和測(cè)試主頁修改配置文件添加虛擬主機(jī)配置重新啟動(dòng)Apache,分別使用IP和域名進(jìn)行訪問測(cè)試基于IP的虛擬主機(jī)的配置舉例2024年5月29日CreativeCommonsLicense(BY-NC-SA)78參考教材中的操作步驟配置基于域名的虛擬主機(jī)

基于域名的虛擬主機(jī)的配置步驟配置虛擬主機(jī)的域名解析創(chuàng)建文檔目錄和測(cè)試主頁修改配置文件添加虛擬主機(jī)配置重新啟動(dòng)Apache,使用域名進(jìn)行訪問測(cè)試基于域名的虛擬主機(jī)的配置舉例2024年5月29日CreativeCommonsLicense(BY-NC-SA)79參考教材中的操作步驟日志管理2024年5月29日80CreativeCommonsLicense(BY-NC-SA)Apache的日志日志的種類錯(cuò)誤日志訪問日志Apache默認(rèn)的錯(cuò)誤日志配置Apache默認(rèn)的訪問日志配置2024年5月29日CreativeCommonsLicense(BY-NC-SA)81ErrorLoglogs/error_logLogLevelwarnLogFormat"%h%l%u%t\"%r\"%>s%b\"%{Referer}i\"\"%{User-Agent}i\""combinedCustomLoglogs/access_logcombinedApache的日志滾動(dòng)Apache的日志滾動(dòng)的必要性一個(gè)訪問頻繁的Web站點(diǎn)的日志會(huì)迅速增長(zhǎng)定期清理以免造成磁盤空間的不必要的浪費(fèi)查看日志時(shí)打開小文件的速度比大文件的速度要快Apache的日志滾動(dòng)方法RHEL/CentOS的默認(rèn)配置logrotate和crond實(shí)現(xiàn)日志滾動(dòng)其他工具使用Apache自帶的rotatelogs使用cronolog(/)2024年5月29日CreativeCommonsLicense(BY-NC-SA)82配置虛擬主機(jī)的日志若在虛擬主機(jī)的<VirtualHost>容器之內(nèi)沒有配置日志指令,則每個(gè)虛擬主機(jī)將繼承使用主配置文件中<VirtualHost>容器之外的日志配置。分離虛擬主機(jī)日志的方法在<VirtualHost>容器之內(nèi)使用ErrorLog和CustomLog語句指定本虛擬主機(jī)單獨(dú)使用的日志文件使用主配置文件將所有虛擬主機(jī)的日志記錄到一個(gè)文件,然后可以使用分離腳本split-logfile將日志文件的內(nèi)容按不同的虛擬主機(jī)拆分為多個(gè)文件2024年5月29日CreativeCommonsLicense(BY-NC-SA)83Apache+mOD_SSL2024年5月29日84CreativeCommonsLicense(BY-NC-SA)mod_sslApacheHTTP服務(wù)器模塊mod_ssl提供了與OpenSSL的接口,它使用安全套接字層和傳輸層安全協(xié)議提供了強(qiáng)加密。此模塊基于RalfS.Engelschall的mod_ssl(/)項(xiàng)目安裝#yum-yinstallmod_ssl配置文件/etc/httpd/conf.d/ssl.conf2024年5月29日CreativeCommonsLicense(BY-NC-SA)85Mod_ssl的默認(rèn)配置文件/etc/httpd/conf.d/ssl.confLoadModulessl_modulemodules/mod_ssl.soListen443<VirtualHost_default_:443>SSLEngineonSSLCertificateFile/etc/pki/tls/certs/localhost.crtSSLCertificateKeyFile/etc/pki/tls/private/localhost.key</VirtualHost>2024年5月29日CreativeCommonsLicense(BY-NC-SA)86SSL相關(guān)的Apache配置指令SSLEngine開啟或關(guān)閉SSL/TLS協(xié)議引擎SSLProtocol允許使用哪些版本的SSL/TLS協(xié)議SSLCipherSuite告訴客戶端允許使用哪些加密算法SSLCertificateFile指定服務(wù)器證書文件SSLCertificateKeyFile指定服務(wù)器私鑰文件2024年5月29日CreativeCommonsLicense(BY-NC-SA)87OpenSSL的加密算法套件

OpenSSL的加密算法套件由4個(gè)屬性組成:密鑰交換算法:RSA或Diffie-Hellman算法的各種變種認(rèn)證算法:RSA,Diffie-Hellman,DSS或none加密算法:AES,DES,Triple-DES,RC4,RC2,IDEA或none摘要算法:MD5,SHA或SHA12024年5月29日CreativeCommonsLicense(BY-NC-SA)88SSLCipherSuiteSSLCipherSuite用于在SSL握手過程中進(jìn)行加密算法協(xié)商時(shí)告訴客戶端允許使用哪些加密算法。指令的值是一個(gè)冒號(hào)分隔的OpenSSL加密算法套件字符串,默認(rèn)值為ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP增刪算法的語法[沒有標(biāo)記]:向列表中增加一個(gè)算法套件+:在列表中的相應(yīng)的位置增加一個(gè)算法套件-:從列表中臨時(shí)刪除相應(yīng)的算法套件!:從列表中永久刪除相應(yīng)的算法套件2024年5月29日CreativeCommonsLicense(BY-NC-SA)89SSLCipherSuite(續(xù))CentOS的ssl.conf中的值為SSLCipherSuiteALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW表示首先指定所有的加密算法套件【ALL】然后依次刪除所有使用匿名Diffie-Hellman密鑰交換(ADH)的算法【!ADH】所有美國(guó)限制出口的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論