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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第14章

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

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

相互交換信息的格式和含義HTTP協(xié)議的特點URI資源識別請求-響應方式無狀態(tài)性攜帶元數(shù)據(jù)2024年5月29日CreativeCommonsLicense(BY-NC-SA)10Web組件——HTTP協(xié)議(2)HTTP協(xié)議的版本HTTP/1.0HTTP/1.1——當前廣泛使用的協(xié)議標準。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會話請求和響應的一部分,用于客戶端和服務器進行HTTP協(xié)議協(xié)商。請求頭(RequestHeaderFields)

(/html/rfc7231#section-5)響應頭(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的請求方法HEADGETPOSTPUTDELETECONNECTOPTIONSTRACE2024年5月29日CreativeCommonsLicense(BY-NC-SA)14Web組件——HTTP協(xié)議(6)HTTP的響應代碼信息1xx表明服務端接收了客戶端請求,客戶端繼續(xù)發(fā)送請求成功2xx客戶端發(fā)送的請求被服務端成功接收并成功進行了處理重定向3xx服務端給客戶端返回用于重定向的信息客戶端錯誤4xx客戶端的請求有非法內容服務器錯誤5xx服務端未能正常處理客戶端的請求而出現(xiàn)意外錯誤2024年5月29日CreativeCommonsLicense(BY-NC-SA)15Web組件——

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

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

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

維護2012.02——Apache2.4版發(fā)行在功能、效率、擴展及速度方面居于領先的地位根據(jù)Netcraft提供的最新調查資料,ApacheWeb服務器是使用比例最高的Web服務器2024年5月29日CreativeCommonsLicense(BY-NC-SA)21Apache的特性開放源代碼、跨平臺應用。模塊化設計、運行穩(wěn)定、良好的安全性。實現(xiàn)了動態(tài)共享對象(DSO),允許在運行時動態(tài)裝載功能模塊。支持最新的HTTP1.1協(xié)議。支持虛擬主機、支持HTTP認證、集成了代理服務、支持安全Socket層(SSL)。使用簡單而強有力的基于文本的配置文件、具有可定制的服務器日志。支持通用網(wǎng)關接口CGI、FastCGI、服務器端包含命令(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的結構Apache由內核、標準模塊和第三方提供的模塊三個層次組成模塊信息:2024年5月29日CreativeCommonsLicense(BY-NC-SA)23Apache的運行模式Apache2.X使用新的多處理模塊(Multi-ProcessingModule,MPM)在服務器處理多個請求時控制Apache的運行方式Apache中的3種運行模式多進程模型預派生(Profork)MPM多進程多線程混合模型工作者(Worker)MPM事件(Event)MPM2024年5月29日CreativeCommonsLicense(BY-NC-SA)24CentOS下的Apache2024年5月29日25CreativeCommonsLicense(BY-NC-SA)Apache服務概覽軟件包:httpd,httpd-devel,httpd-manual服務類型:由Systemd啟動的守護進程配置單元:/usr/lib/systemd/system/httpd.service守護進程:/usr/sbin/httpd端口:80(http),443(https)配置:/etc/httpd/Web文檔:/var/www/相關軟件包:mod_ssl2024年5月29日CreativeCommonsLicense(BY-NC-SA)26Apache的安裝和啟動安裝#yuminstallhttpdhttpd-manual管理httpd服務#systemctl{start|stop|status|restart|reload}httpd#systemctl{enable|disable}httpd檢查配置文件的正確性#apachectl-t

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

滾動Apache日志而無須終止服務器2024年5月29日CreativeCommonsLicense(BY-NC-SA)28查看Apache的相關信息顯示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的默認配置服務器的根目錄:/etc/httpd運行Apache的用戶:apache運行Apache的組:apache監(jiān)聽端口:80模塊存放路徑:/usr/lib/httpd/modulespreforkMPM運行方式的參數(shù):StartServers8MinSpareServers5MaxSpareServers20MaxClients1502024年5月29日CreativeCommonsLicense(BY-NC-SA)30CentOS下Apache的默認配置

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

(續(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的日志滾動配置文件/etc/sysconfig/httpd:httpd守護進程的啟動配置文件2024年5月29日CreativeCommonsLicense(BY-NC-SA)32Apache配置基礎2024年5月29日33CreativeCommonsLicense(BY-NC-SA)Apache配置文件種類主配置文件/etc/httpd/conf/httpd.conf被主配置文件包含的配置文件/etc/httpd/conf.d/*.conf可以用Include/IncludeOptional指令定義被包含的配置文件基于目錄的配置文件使用分布在網(wǎng)站目錄樹中的特殊文件來進行分散配置這些特殊的文件默認為.htaccess也可以用

AccessFileName

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

的相關指令

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

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

mod_authz_core和mod_authz_host

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

指令允許所有主機訪問Requireallgranted拒絕所有主機訪問Requirealldenied僅允許本地主機訪問Requirelocal允許或[禁止]指定的主機或域訪問Require[not]host<主機名或域名列表>允許或[禁止]指定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)以外的內容加入站點,也稱虛擬目錄Alias指令Alias/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容器選項配置(Options)Options指令用于控制當前容器中可以使用哪些服務器特性可以出現(xiàn)在主配置文件或.htaccess配置文件中<Directory>、<Location>容器中Options指令格式Options[+|-]Option1[+|-]Option2……選項之前添加加號(+)表示添加此特性選項之前添加減號(-)表示去掉此特性2024年5月29日CreativeCommonsLicense(BY-NC-SA)54Options指令的常用選項All:除MultiViews之外的所有特性。默認設置None:將不啟用任何額外特性ExecCGI:允許使用mod_cgi執(zhí)行CGI腳本FollowSymLinks:服務器允許在此目錄中使用符號連接Indexes:若一個映射到目錄的URL被請求,而此目錄中又沒有DirectoryIndex指定的文件(例如index.html),則服務器會返回由mod_autoindex模塊生成的一個格式化后的目錄列表MultiViews:允許使用mod_negotiation提供內容協(xié)商的“多重視圖”2024年5月29日CreativeCommonsLicense(BY-NC-SA)55IndexOptions指令用于配置mod_autoindex模塊生成目錄列表的顯示特性IndexOptions指令的常用選項FancyIndexing對每種類型的文件前加上一個小圖標以示區(qū)別VersionSort對同一個軟件的多個版本進行排序NameWidth=*文件名子段自動適應當前目錄下最長文件名FoldersFirst讓目錄列在前面(類似于資源管理器)2024年5月29日CreativeCommonsLicense(BY-NC-SA)56主機訪問控制和別名

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

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

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

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

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

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

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

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

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

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

OpenSSL的加密算法套件由4個屬性組成:密鑰交換算法:RSA或Diffie-Hellman算法的各種變種認證算法:RSA,Diffie-Hellman,DSS或none加密算法:AES,DES,Triple-DES,RC4,RC2,IDEA或none摘要算法:MD5,SHA或SHA12024年5月29日CreativeCommonsLicense(BY-NC-SA)88SSLCipherSuiteSSLCipherSuite用于在SSL握手過程中進行加密算法協(xié)商時告訴客戶端允許使用哪些加密算法。指令的值是一個冒號分隔的OpenSSL加密算法套件字符串,默認值為ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP增刪算法的語法[沒有標記]:向列表中增加一個算法套件+:在列表中的相應的位置增加一個算法套件-:從列表中臨時刪除相應的算法套件!:從列表中永久刪除相應的算法套件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】所有美國限制出口的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論