版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1第第6章章 Apache 服務(wù)服務(wù) 本章要點(diǎn):本章要點(diǎn): Apache主配置文件主配置文件 httpd.conf 訪問(wèn)控制訪問(wèn)控制 虛擬主機(jī)虛擬主機(jī) 重定向重定向 重寫(xiě)規(guī)則重寫(xiě)規(guī)則2361 Apache概述概述 Apache是一款著名的是一款著名的Web服務(wù)器軟件。服務(wù)器軟件。 在在Internet上,上, Apache是占有率最高的是占有率最高的Web服務(wù)器。服務(wù)器。 當(dāng)前,當(dāng)前,Apache主要有兩種流行的版本,主要有兩種流行的版本, 第一種是第一種是1.3版,這是比較早期但十分成熟版,這是比較早期但十分成熟穩(wěn)定的版本,目前使用率仍很高;穩(wěn)定的版本,目前使用率仍很高; 第二種是第二種是2
2、.0版,這是版,這是Apache最新的版本,最新的版本,增加和完善了一些功能。增加和完善了一些功能。RHEL 7.0中的中的Apache服務(wù)采用的是服務(wù)采用的是2.4.6版版4611 Apache的功能的功能 下面列舉出Apache的主要功能:1)支持HTTP1.1標(biāo)準(zhǔn)。2)支持多種腳本語(yǔ)言如,perl、php、jsp等。3)支持多種用戶認(rèn)證機(jī)制,如.htaccess文件、mysql數(shù)據(jù)庫(kù)、openldap目錄等。4)支持虛擬主機(jī)。5)支持訪問(wèn)控制。6)支持重定向和重寫(xiě)規(guī)則。7)支持SSL。5612 Apache的安裝的安裝在RHEL 7.0中與Apache相關(guān)的有以下3個(gè)軟件包:(1)htt
3、pd-2.4.6-17.el7.x86_64.rpm這是Apache服務(wù)器的軟件包。(2)httpd-manual-2.4.6-17.el7.noarch.rpm這是Apache幫助手冊(cè)的軟件包。(3)httpd-tools-2.4.6-17.el7.x86_64.rpm 這是Apache工具軟件包??赏ㄟ^(guò)#rpm ivh httpd*.rpm或采用yum來(lái)進(jìn)行安裝,如下:#yum install httpd httpd-tools httpd-manual執(zhí)行如下命令,來(lái)安裝上述3個(gè)軟件包6613 Apache的運(yùn)行的運(yùn)行 在RHEL 4.0中,有兩種典型啟動(dòng)Apache的方法:方法一:ro
4、otserver1 # service httpd start方法二:rootserver1 # apachectl start 如果要設(shè)置每次開(kāi)機(jī)時(shí)自動(dòng)運(yùn)行Apache服務(wù)器,可執(zhí)行如下指令:rootserver1 # chkconfig httpd on7 通過(guò)如下命令來(lái)檢查運(yùn)行狀態(tài)運(yùn)行狀態(tài):rootserver1 #service httpd status 通過(guò)如下命令來(lái)檢查語(yǔ)法檢查語(yǔ)法:rootserver1 #apachectl configtest或rootserver1 #httpd -t 通過(guò)如下命令來(lái)查看編譯時(shí)的配置參數(shù)配置參數(shù):rootserver1 #httpd V 通過(guò)
5、如下命令來(lái)查看已經(jīng)被編譯到編譯到Apache中的模塊中的模塊:rootserver1 #httpd l862 Apache的配置文件的配置文件621 Apache配置文件的結(jié)構(gòu)配置文件的結(jié)構(gòu) Apache的配置文件是/etc/httpd/conf/httpd.conf (1)Section 1: Global Environment這段的功能是控制Apache服務(wù)器進(jìn)程的全局操作。(2)Section 2: Main server configuration這段的功能是處理任何不被段處理的請(qǐng)求,即提供默認(rèn)處理。請(qǐng)注意,section 2中指令都可以寫(xiě)在虛擬主機(jī)段中。(3)Section 3:
6、Virtual Hosts這段的功能是提供虛擬主機(jī)配置。9622 Apache配置指令配置指令1Section 1: Global Environment段的配置指令(1)ServerRoot /etc/httpd功能:設(shè)置服務(wù)器的根目錄。說(shuō)明:在Apache配置文件中如果文件名不以“/”開(kāi)頭,則認(rèn)為是相對(duì)路徑,會(huì)在文件名前加上ServerRoot命令指定的默認(rèn)路徑名。(2)Listen 80功能:設(shè)置Apache服務(wù)器監(jiān)聽(tīng)的端口號(hào)為80。說(shuō)明:也可以設(shè)置Apache服務(wù)器監(jiān)聽(tīng)的IP地址和端口號(hào),如Listen 8:8010(3)包含模塊文件Include conf.mod
7、ules.d/*.conf功能:將配置模塊文件包含進(jìn)來(lái),這里的模塊都是對(duì)動(dòng)態(tài)共享對(duì)象支持。功能:將配置模塊文件包含進(jìn)來(lái),這里的模塊都是對(duì)動(dòng)態(tài)共享對(duì)象支持。查看該目錄下包含進(jìn)來(lái)了哪些文件:查看該目錄下包含進(jìn)來(lái)了哪些文件:#ll conf.modules.d/總用量 44-rw-r-r-. 1 root root 3739 3月 20 2014 00-base.conf-rw-r-r-. 1 root root 139 3月 20 2014 00-dav.conf-rw-r-r-. 1 root root 41 3月 20 2014 00-lua.conf-rw-r-r-. 1 root root
8、 742 3月 20 2014 00-mpm.conf-rw-r-r-. 1 root root 894 3月 20 2014 00-proxy.conf-rw-r-r-. 1 root root 88 3月 20 2014 00-systemd.conf-rw-r-r-. 1 root root 451 3月 20 2014 01-cgi.conf-rw-r-r-. 1 root root 53 1月 27 2014 10-auth_kerb.conf-rw-r-r-. 1 root root 43 1月 27 2014 10-nss.conf-rw-r-r- 1 root root 216
9、 3月 7 2014 10-php.conf-rw-r-r-. 1 root root 43 1月 27 2014 10-wsgi.conf (4)自定義)自定義Apache子進(jìn)程運(yùn)行身份子進(jìn)程運(yùn)行身份User apacheGroup apache功能:設(shè)置 Apache服務(wù)器子進(jìn)程運(yùn)行時(shí)的身份為apache、屬組為apache 。說(shuō)明:將Apache服務(wù)器子進(jìn)程的運(yùn)行身份設(shè)置為權(quán)限很低的賬號(hào)是當(dāng)前安全措施中經(jīng)常采用的方式。示例:# ps aux | grep httpdroot 34285 0.0 0.3 501632 27432 ? Ss 09:27 0:01 /usr/sbin/http
10、d -DFOREGROUNDroot 34286 0.0 0.1 50784 9724 ? S 09:27 0:00 /usr/libexec/nss_pcache 851973 off /etc/httpd/aliasapache 37170 0.0 0.3 518064 27248 ? S 10:32 0:00 /usr/sbin/httpd -DFOREGROUNDapache 37174 0.0 0.3 518064 27248 ? S 10:32 0:00 /usr/sbin/httpd -DFOREGROUNDapache 37175 0.0 0.3 518064 27248 ?
11、S 10:32 0:00 /usr/sbin/httpd -DFOREGROUNDapache 37177 0.0 0.3 518064 27248 ? S 10:32 0:00 /usr/sbin/httpd -DFOREGROUNDapache 37178 0.0 0.3 518064 27248 ? S 10:32 0:00 /usr/sbin/httpd -DFOREGROUND11122Section 2 Main server configuration段(1)設(shè)置)設(shè)置管理員郵箱管理員郵箱ServerAdmin rootlocalhost功能:設(shè)置功能:設(shè)置Apache服務(wù)器管理
12、員的郵箱。服務(wù)器管理員的郵箱。(2)設(shè)置)設(shè)置服務(wù)器名稱和端口號(hào)服務(wù)器名稱和端口號(hào)#ServerName :80功能:設(shè)置功能:設(shè)置Apache默認(rèn)站點(diǎn)的名稱和端口號(hào)。默認(rèn)站點(diǎn)的名稱和端口號(hào)。13(3)根目錄的根目錄的訪問(wèn)控制訪問(wèn)控制 AllowOverride none Require all denied 功能:在main server段中有很多個(gè)Directory指令配置段,它的寫(xiě)法有些類似HTML的格式。表示要對(duì)文件系統(tǒng)的目錄進(jìn)行限制。AllowOverride None表示不允許覆蓋不允許覆蓋,即不允許其他文件(.htaccess)中配置覆蓋當(dāng)前的設(shè)置。AllowOverride的值
13、參見(jiàn)表6-1所示:14(5)對(duì))對(duì)文檔根父目錄文檔根父目錄的訪問(wèn)控制的訪問(wèn)控制 AllowOverride None # Allow open access: Require all granted功能:對(duì)文檔根的父目錄功能:對(duì)文檔根的父目錄“/var/www”放松限放松限制,不允許覆蓋當(dāng)前設(shè)置且開(kāi)放無(wú)條件訪問(wèn)。制,不允許覆蓋當(dāng)前設(shè)置且開(kāi)放無(wú)條件訪問(wèn)。這是這是Apache 2.4版中默認(rèn)配置文件中的新設(shè)置,版中默認(rèn)配置文件中的新設(shè)置,由于權(quán)限比較寬松,因此由于權(quán)限比較寬松,因此需要注意安全問(wèn)題需要注意安全問(wèn)題。15(6)對(duì))對(duì)文檔根文檔根的的訪問(wèn)控制訪問(wèn)控制功能:針對(duì)文檔根目錄功能:針對(duì)文檔根
14、目錄/var/www/html進(jìn)行限制。進(jìn)行限制。Options Indexes FollowSymLinks功能:設(shè)置允許跟隨符號(hào)連接;功能:設(shè)置允許跟隨符號(hào)連接;Indexes的含義是如果的含義是如果要訪問(wèn)的文檔不存在,則會(huì)顯示出該目錄下的文件目錄要訪問(wèn)的文檔不存在,則會(huì)顯示出該目錄下的文件目錄清單。清單。AllowOverride None功能:不允許覆蓋當(dāng)前配置,即不處理功能:不允許覆蓋當(dāng)前配置,即不處理.htaccess文件。文件。Require all granted功能:允許從任意地址訪問(wèn)該目錄。功能:允許從任意地址訪問(wèn)該目錄。Options的值參見(jiàn)表6-2所示:1617表6-2
15、 Options選項(xiàng)值及其含義(7)設(shè)置)設(shè)置默認(rèn)文檔名默認(rèn)文檔名 DirectoryIndex index.html功能:設(shè)置每個(gè)目錄的默認(rèn)文檔名。功能:設(shè)置每個(gè)目錄的默認(rèn)文檔名。說(shuō)明:當(dāng)訪問(wèn)網(wǎng)站時(shí)如果沒(méi)有指定具體的文檔,則會(huì)說(shuō)明:當(dāng)訪問(wèn)網(wǎng)站時(shí)如果沒(méi)有指定具體的文檔,則會(huì)在指定的目錄下找有沒(méi)有默認(rèn)文檔存在,如果有則顯在指定的目錄下找有沒(méi)有默認(rèn)文檔存在,如果有則顯示。示。(8)文件訪問(wèn)控制文件訪問(wèn)控制 Require all denied功能:無(wú)條件禁止訪問(wèn)文件名中包含功能:無(wú)條件禁止訪問(wèn)文件名中包含“.ht” 的文件。的文件。18(9)設(shè)置)設(shè)置錯(cuò)誤日志錯(cuò)誤日志ErrorLog logs/e
16、rror_log功能:指定錯(cuò)誤日志的存放位置。功能:指定錯(cuò)誤日志的存放位置。(10)設(shè)置)設(shè)置日志級(jí)別日志級(jí)別LogLevel warn功能:指定日志記錄的級(jí)別。功能:指定日志記錄的級(jí)別。(11)設(shè)置)設(shè)置日志格式日志格式 LogFormat %h %l %u %t %r %s %b %Refereri %User-Agenti combined LogFormat %h %l %u %t %r %s %b common LogFormat %h %l %u %t %r %s %b %Refereri %User-Agenti %I %O combinedio CustomLog logs/a
17、ccess_log combined 功能:利用功能:利用LogFormat指令設(shè)置記錄日志時(shí)采用的格式;利用指令設(shè)置記錄日志時(shí)采用的格式;利用CustomLog指令設(shè)置訪問(wèn)日志的位置和類型。指令設(shè)置訪問(wèn)日志的位置和類型。19(12)設(shè)置)設(shè)置CGI腳本目錄的別名腳本目錄的別名ScriptAlias /cgi-bin/ /var/www/cgi-bin/功能:定義功能:定義CGI腳本目錄的別名,即將腳本目錄的別名,即將/cgi-bin/定義為定義為/var/www/cgi-bin/的別名。的別名。說(shuō)明:一般情況下,說(shuō)明:一般情況下,/cgi-bin/中存放的是中存放的是CGI腳本程序,而且腳腳
18、本程序,而且腳本程序應(yīng)該位于文檔根目錄之外,所以采用了別名(虛擬目錄)本程序應(yīng)該位于文檔根目錄之外,所以采用了別名(虛擬目錄)的方式。接下來(lái),仍然是對(duì)腳本別名所對(duì)應(yīng)的真實(shí)目錄做限制的方式。接下來(lái),仍然是對(duì)腳本別名所對(duì)應(yīng)的真實(shí)目錄做限制的配置段,內(nèi)容如下:的配置段,內(nèi)容如下: AllowOverride None Options None Require all granted20(13)設(shè)置)設(shè)置MIME模塊模塊TypesConfig /etc/mime.types AddType application/x-compress .ZAddType application/x-gzip .gz
19、.tgz功能:如果前面的功能:如果前面的AddEncoding去掉注釋的話,那么應(yīng)該定義去掉注釋的話,那么應(yīng)該定義這些擴(kuò)展名來(lái)指明這些媒體文件的類型。這些擴(kuò)展名來(lái)指明這些媒體文件的類型。 AddType text/html .shtmlAddOutputFilter INCLUDES .shtml功能:定義功能:定義SSI(服務(wù)器端包含)文件的擴(kuò)展名;增加處(服務(wù)器端包含)文件的擴(kuò)展名;增加處理理.shtml文件的方法。文件的方法。 (14)增加默認(rèn)字符集增加默認(rèn)字符集AddDefaultCharset UTF-8功能:增加默認(rèn)字符集為功能:增加默認(rèn)字符集為UTF-8。21(15)MIME M
20、agic模塊模塊 MIMEMagicFile conf/magic功能:允許服務(wù)器根據(jù)文件內(nèi)容的各種提示來(lái)決定其類型。功能:允許服務(wù)器根據(jù)文件內(nèi)容的各種提示來(lái)決定其類型。(16)采用)采用sendfile系統(tǒng)調(diào)用來(lái)傳遞文件系統(tǒng)調(diào)用來(lái)傳遞文件EnableSendfile on功能:采用內(nèi)存映射或功能:采用內(nèi)存映射或sendfile系統(tǒng)調(diào)用來(lái)傳遞文件。這通??上到y(tǒng)調(diào)用來(lái)傳遞文件。這通常可以提高服務(wù)器的性能,但是在基于網(wǎng)絡(luò)掛裝的文件系統(tǒng)上,必以提高服務(wù)器的性能,但是在基于網(wǎng)絡(luò)掛裝的文件系統(tǒng)上,必須關(guān)閉此特性。須關(guān)閉此特性。(17)包含可選的配置文件包含可選的配置文件IncludeOptional c
21、onf.d/*.conf功能:包含功能:包含/etc/httpd/conf.d目錄下所有以目錄下所有以.conf結(jié)尾的配置文結(jié)尾的配置文件,件,這些可選的這些可選的“小配置文件小配置文件”是主配置文件的是主配置文件的重要擴(kuò)展和補(bǔ)充。重要擴(kuò)展和補(bǔ)充。222363 Apache的配置示例的配置示例631 主機(jī)訪問(wèn)控制主機(jī)訪問(wèn)控制1.主機(jī)訪問(wèn)控制示例一:主機(jī)訪問(wèn)控制示例一: Order allow,deny Allow from /24 Deny from 23功能:除了功能:除了23以外,以外, /24
22、網(wǎng)段的其他機(jī)器可以訪問(wèn)該目錄。網(wǎng)段的其他機(jī)器可以訪問(wèn)該目錄。說(shuō)明:說(shuō)明:Order 定義了定義了allow與與deny指令的執(zhí)行順序,指令的執(zhí)行順序,如果二者有矛盾的話,以后執(zhí)行的指令為準(zhǔn)。需如果二者有矛盾的話,以后執(zhí)行的指令為準(zhǔn)。需要注意的是要注意的是allow、deny指令的執(zhí)行順序與下面指令的執(zhí)行順序與下面的的Allow from 、Deny from語(yǔ)句的書(shū)寫(xiě)順序無(wú)關(guān)。語(yǔ)句的書(shū)寫(xiě)順序無(wú)關(guān)。24主機(jī)訪問(wèn)控制示例三:主機(jī)訪問(wèn)控制示例三: Order allow,deny Allow from all Deny from all功能:禁止所有主機(jī)從任何地點(diǎn)訪問(wèn)該目錄。功能:禁止所有主機(jī)從任何
23、地點(diǎn)訪問(wèn)該目錄。 Order deny ,allow Allow from 23 Deny from 23功能:允許功能:允許IP地址為地址為23的主機(jī)可以訪的主機(jī)可以訪問(wèn)該目錄。問(wèn)該目錄。25 關(guān)于主機(jī)訪問(wèn)控制有以下說(shuō)明:關(guān)于主機(jī)訪問(wèn)控制有以下說(shuō)明:1)Order 命令中指定的順序至關(guān)重要,寫(xiě)在后面命令中指定的順序至關(guān)重要,寫(xiě)在后面的關(guān)鍵字有最終決定權(quán)。的關(guān)鍵字有最終決定權(quán)。2)IP地址的表示方法比較靈活,可以有如下寫(xiě)法:地址的表示方法比較靈活,可以有如下寫(xiě)法:網(wǎng)絡(luò)網(wǎng)絡(luò)/子網(wǎng)掩碼子網(wǎng)掩碼:如:如/
24、。CIDR規(guī)范規(guī)范:如:如/24。單個(gè)單個(gè)IP地址地址的表示:的表示:23。3)支持域名支持域名例如,例如,Allow from 功能:表示允許功能:表示允許域中所有主機(jī)訪問(wèn)。域中所有主機(jī)訪問(wèn)。 26632 用戶訪問(wèn)控制用戶訪問(wèn)控制 下面通過(guò)示例來(lái)具體介紹認(rèn)證授權(quán)的實(shí)現(xiàn)。下面通過(guò)示例來(lái)具體介紹認(rèn)證授權(quán)的實(shí)現(xiàn)。(1)首先,編輯)首先,編輯Apache的主配置文件的主配置文件httpd.conf,在需要進(jìn)行認(rèn)證授權(quán)的目錄中進(jìn)行配置。在需要進(jìn)行認(rèn)證授權(quán)的目錄中進(jìn)行配置。#對(duì)目錄對(duì)目錄“/var/www/html/test”進(jìn)行
25、訪問(wèn)控制。進(jìn)行訪問(wèn)控制。AllowOverride AuthConfig #表示允許覆蓋,即允許在文件表示允許覆蓋,即允許在文件.htaccess中使用認(rèn)中使用認(rèn)證授權(quán)。證授權(quán)。說(shuō)明:說(shuō)明:.htaccess應(yīng)該位于應(yīng)該位于“/var/www/html/test”目錄中目錄中。另外,。另外,AllowOverride的值還可以是的值還可以是All,也能實(shí)現(xiàn)此功能。也能實(shí)現(xiàn)此功能。27(2)在需要認(rèn)證和授權(quán)的目錄中,即)在需要認(rèn)證和授權(quán)的目錄中,即“/var/www/html/test”目錄中創(chuàng)建名目錄中創(chuàng)建名為為.htaccess的文件,其內(nèi)容如下:的文件,其內(nèi)容如下:AuthName “Te
26、st Area”AuthType Basic AuthUserFile /var/mypasswd Require valid-user 28(3)創(chuàng)建口令文件。)創(chuàng)建口令文件。按照.htaccess中AuthUserFile指定的文件名,來(lái)創(chuàng)建口令文件/var/mypasswd。執(zhí)行如下命令:#htpasswd c /var/mypasswd myuser1功能:創(chuàng)建/var/mypasswd文件,同時(shí)將用戶myuser1加入該文件中;其中-c:表示創(chuàng)建。注意只在第一次創(chuàng)建口令文件使用-c,以后再添加新用戶時(shí)不要帶-c參數(shù),請(qǐng)看如下示例:# htpasswd /var/mypasswd my
27、user2 29(4)將口令文件的屬主改為)將口令文件的屬主改為apache。# chown apache.apache /var/mypasswd說(shuō)明:因?yàn)樵谶\(yùn)行Apache服務(wù)器時(shí)是以apache的身份運(yùn)行的,而在進(jìn)行認(rèn)證過(guò)程時(shí)需要訪問(wèn)口令文件/var/mypasswd,所以需要將口令文件的屬主改為apache。 30 執(zhí)行了以上步驟后,即可重新啟動(dòng)Apache服務(wù)器。#service httpd restart在客戶機(jī)上,進(jìn)行認(rèn)證授權(quán)的測(cè)試,在瀏覽器地址欄中輸入如下內(nèi)容:02/test/效果如圖6-1所示:31圖圖6-1認(rèn)證授權(quán)認(rèn)證授權(quán)32圖圖6-2未通過(guò)與
28、通過(guò)認(rèn)證授權(quán)未通過(guò)與通過(guò)認(rèn)證授權(quán)33633 虛擬主機(jī)虛擬主機(jī)Apache實(shí)現(xiàn)的虛擬主機(jī)主要有實(shí)現(xiàn)的虛擬主機(jī)主要有3種類型:種類型: 一是一是基于基于IP地址地址的虛擬主機(jī);的虛擬主機(jī); 二是二是基于端口基于端口的虛擬主機(jī);的虛擬主機(jī); 三是三是基于名字基于名字的虛擬主機(jī)。的虛擬主機(jī)。 341基于基于IP地址的虛擬主機(jī)地址的虛擬主機(jī) 思路:在同一臺(tái)主機(jī)上配置多個(gè)IP地址,每個(gè)IP地址對(duì)應(yīng)一個(gè)虛擬主機(jī)。 第一步第一步,在一臺(tái)主機(jī)上配置多個(gè)IP地址,執(zhí)行如下命令。# ifconfig eth0:1 03 netmask 功能:eth0:1為eth0的子接口
29、,該命令創(chuàng)建了子接口eth0:1,同時(shí)為該接口配置了IP地址03。35第二步,編輯第二步,編輯Apache的配置文件,在文件的末尾追加以下的配置文件,在文件的末尾追加以下內(nèi)容:內(nèi)容: ServerAdmin DocumentRoot /www/iproot1 ServerName 02 ErrorLog logs/02-error_log CustomLog logs/02-access_log common ServerAdmin DocumentRoot /www/iproot2 ServerName 10.22.1.
30、103 ErrorLog logs/03-error_log CustomLog logs/03-access_log common36 第三步,建立兩個(gè)虛擬主機(jī)的文檔根目錄及相應(yīng)測(cè)試頁(yè)面。第三步,建立兩個(gè)虛擬主機(jī)的文檔根目錄及相應(yīng)測(cè)試頁(yè)面。#mkdir p /www/iproot1#mkdir p /www/iproot2#vi /www/iproot1/index.html內(nèi)容如下: this is the IP_based VirtualHost 02!#vi /www/iproot2/index.html內(nèi)容如下: this is
31、the IP_based VirtualHost 03! 37 第四步,運(yùn)行與測(cè)試。#service httpd restart#elinks 02說(shuō)明:利用RHEL 7.0中提供的文本瀏覽器elinks來(lái)測(cè)試。#elinks 03382基于端口的虛擬主機(jī)基于端口的虛擬主機(jī) 思路:在同一臺(tái)主機(jī)上針對(duì)一個(gè)IP地址和不同的端口來(lái)建立虛擬主機(jī),即每個(gè)端口對(duì)應(yīng)一個(gè)虛擬主機(jī)。 第一步,建立新的子接口并配置IP地址為04# ifconfig eth0:2 04 netmask 255.255.
32、255.039 第二步,編輯Apache的主配置文件httpd.conf,增加監(jiān)聽(tīng)的端口號(hào)8001和8002在Section 1 中增加兩行配置,分別監(jiān)聽(tīng)8001和8002端口Listen 80Listen 8001Listen 800240第三步,編輯Apache的主配置文件httpd.conf,建立基于端口的虛擬主機(jī)配置段,內(nèi)容如下: ServerAdmin DocumentRoot /www/portroot1 ServerName 04 ErrorLog logs/04-8001-error_log CustomLog logs/0
33、4-8001-access_log common ServerAdmin DocumentRoot /www/portroot2 ServerName 04 ErrorLog logs/04-8002-error_log CustomLog logs/04-8002-access_log common413基于名字的虛擬主機(jī)基于名字的虛擬主機(jī) 思路:在同一臺(tái)主機(jī)上針對(duì)相同的IP地址和端口號(hào)建立基于名字的虛擬主機(jī)。 第一步,在DNS服務(wù)器的區(qū)域數(shù)據(jù)庫(kù)文件中增加兩條A記錄和兩條PTR記錄。為了不影響前面的虛擬主機(jī),這里再增加一個(gè)子接口,并配置為
34、05。# ifconfig eth0:3 05 netmask 接下來(lái),配置DNS以支持新的域名解析。DNS正向區(qū)域數(shù)據(jù)庫(kù)中增加的記錄如下:. IN A . IN A 0542 第二步,編輯Apache的主配置文件,激活基于名字的虛擬主機(jī),并建立兩個(gè)基于名字的虛擬主機(jī)配置段。NameVirtualHost 05:80功能:針對(duì)05:80配置基于名字的虛擬主機(jī)。說(shuō)明:這是非常重要的一條指令,正是該指令的作用才激活了基于名字的虛擬主機(jī)的功能。43NameVirtualHost 10
35、.22.1.105:80 ServerAdmin DocumentRoot /www/nameroot1 ServerName ErrorLog logs/-error_log CustomLog logs/-access_log common ServerAdmin DocumentRoot /www/nameroot2 ServerName ErrorLog logs/-error_log CustomLog logs/-access_log common 44第三步,建立兩個(gè)虛擬主機(jī)的文檔根及主頁(yè)。#mkdir -p /www/nameroot1#mkdir -p /www/namero
36、ot2#vi /www/nameroot1/index.html內(nèi)容如下: welcome to name_based VirtualHost .#vi /www/nameroot2/index.html內(nèi)容如下: welcome to name_based VirtualHost .45 第四步,運(yùn)行與測(cè)試。#service httpd restart#elinks #elinks 4664 Apache的高級(jí)配置的高級(jí)配置641 重定向重定向Redirect 指令的格式如下:指令的格式如下:Syntax: Redirect status URL-path new-URL說(shuō)明:說(shuō)明:new-
37、URL不能是相對(duì)路徑,必須是不能是相對(duì)路徑,必須是FQDN。47 重定向示例一:重定向示例一:編輯Apache的主配置文件httpd.conf,在Section 2 main server configuration 中增加如下指令:Redirect /tools 02/oldtools功能:當(dāng)客戶訪問(wèn)02/tools時(shí),將被重定向?yàn)?2/oldtools。48 重定向示例二:重定向示例二:Redirect permanent /one http:/ 303 /three http:/ 和和 Script
38、Alias配置指令。49642 重寫(xiě)規(guī)則重寫(xiě)規(guī)則 Apache的重寫(xiě)規(guī)則模塊是一個(gè)基于正則表示式的重寫(xiě)URL 的工具。 重寫(xiě)規(guī)則模塊提供了包括路徑處理在內(nèi)完整的URL處理操作: 既可以應(yīng)用在Apache主配置文件主配置文件httpd.conf中(又稱為每服務(wù)器上下文per-server context), 又可以應(yīng)用在.htaccess 文件中文件中(又稱為每目錄上下文per-directory context)。 50 在進(jìn)行URL的操作過(guò)程中,可以依據(jù)多種條件測(cè)試,例如:服務(wù)器變量環(huán)境變量HTTP首部各字段時(shí)間戳等。51 重寫(xiě)規(guī)則的處理機(jī)制分為兩部分:第一是整個(gè)規(guī)則集整個(gè)規(guī)則集的處理流程;
39、第二是一條規(guī)則一條規(guī)則的處理流程。 521整個(gè)規(guī)則集的處理流程 注意注意:整個(gè)規(guī)則集的處理流程有些復(fù)雜,記住先從第一從第一條規(guī)則入手條規(guī)則入手,而不是寫(xiě)在第一條規(guī)則前面的重寫(xiě)條件。53 圖中的RewriteRule指令用來(lái)設(shè)置一條重寫(xiě)規(guī)則,其格式如下: RewriteRule Pattern Substitution其中,Pattern是URL需要匹配的模版模版,是一個(gè)正則表達(dá)式,Substitution是重寫(xiě)后的字符串是重寫(xiě)后的字符串,即新的URL或新的文件名。 圖6-3中出現(xiàn)的另一條指令是RewriteCond,該指令用來(lái)設(shè)置重寫(xiě)條件,其格式如下:RewriteCond TestStrin
40、g CondPattern其中,TestString可以包含變量、后向應(yīng)用及映射查詢結(jié)果等。CondPattern是條件模版,可以是是條件模版,可以是一個(gè)正則表達(dá)式一個(gè)正則表達(dá)式;將TestString與后面的CondPattern條件模版相比對(duì),若二者相匹配,則執(zhí)行下一個(gè)重寫(xiě)條件或執(zhí)行與其相關(guān)的重寫(xiě)規(guī)則。 54當(dāng)重寫(xiě)規(guī)則模塊收到一個(gè)URL請(qǐng)求后,按如下流程處理:1)按順序取出下一條要執(zhí)行的重寫(xiě)規(guī)則。2)用當(dāng)前的當(dāng)前的URL與當(dāng)前重寫(xiě)規(guī)則中的與當(dāng)前重寫(xiě)規(guī)則中的Pattern進(jìn)行進(jìn)行比對(duì)比對(duì),如果二者不匹配,則中止該規(guī)則的執(zhí)行,轉(zhuǎn)去執(zhí)行步驟5);如果二者匹配,則執(zhí)行步驟3)。3)執(zhí)行與該規(guī)則相關(guān)
41、的重寫(xiě)條件中的TestString,即展開(kāi)展開(kāi)TestString。接著,將將TestString與該與該重寫(xiě)條件中的重寫(xiě)條件中的CondPattern相比對(duì)相比對(duì),如果二者不匹配,則中止該重寫(xiě)條件的執(zhí)行,進(jìn)而中止該重寫(xiě)規(guī)則的執(zhí)行,轉(zhuǎn)去執(zhí)行步驟5);如果二者匹配,則執(zhí)行步驟4)。4)執(zhí)行該條重寫(xiě)規(guī)則中的Substitution,即真正實(shí)現(xiàn)URL重寫(xiě)操作。5)判斷是否為最后一條重寫(xiě)規(guī)則是否為最后一條重寫(xiě)規(guī)則,如果不是,則轉(zhuǎn)去執(zhí)行1),否則執(zhí)行6)。6)URL重寫(xiě)完畢。 552一條規(guī)則的處理流程 Apache重寫(xiě)模塊中允許一條重寫(xiě)規(guī)則一條重寫(xiě)規(guī)則可以與任意數(shù)量的重寫(xiě)條件相關(guān)聯(lián)。 為解釋每一條重寫(xiě)規(guī)
42、則的執(zhí)行過(guò)程,請(qǐng)參見(jiàn)圖6-4所示。56 一條重寫(xiě)規(guī)則的執(zhí)行過(guò)程:57 Apache重寫(xiě)模塊中,允許重寫(xiě)規(guī)則可以沒(méi)沒(méi)有相關(guān)的重寫(xiě)條件有相關(guān)的重寫(xiě)條件,在這種情況下,仍然先判斷收到的URL與Pattern是否匹配,如果二者相匹配,則直接執(zhí)行Substitution,即完成URL重寫(xiě)操作。 如果一條重寫(xiě)規(guī)則與多條重寫(xiě)條件多條重寫(xiě)條件相關(guān)聯(lián),則在處理完URL與Pattern比對(duì)后,依次去執(zhí)行各重寫(xiě)條件,如果其中有任何一條不滿足一條不滿足的話,都會(huì)中止該重寫(xiě)規(guī)則中止該重寫(xiě)規(guī)則的執(zhí)行。583重寫(xiě)規(guī)則示例(1)源與目標(biāo)同在文檔根下示例)源與目標(biāo)同在文檔根下示例 本示例示例是指在文檔根(/var/www/ht
43、ml)下有兩個(gè)目錄,一個(gè)是原來(lái)存放文檔的舊目錄/var/www/html/realold1,一個(gè)是現(xiàn)在存放文檔的新目錄/var/www/html/realnew1。 客戶通過(guò)舊名字仍然可以訪問(wèn)原來(lái)的文檔,即將/realold1/重定向到/var/www/html/realnew1目錄。 具體實(shí)現(xiàn)步驟如下:591)在Apache主配置文件主配置文件httpd.conf中,輸入以下內(nèi)容:#針對(duì)源(舊)目錄進(jìn)行設(shè)置Options FollowSymLinks#要用重寫(xiě)規(guī)則,必須激活FollowSymLinks選項(xiàng)AllowOverride All#允許覆蓋,即采用.
44、htaccess文件中的配置,下面在該文件中寫(xiě)入重寫(xiě)規(guī)則 #針對(duì)目標(biāo)(新)目錄進(jìn)行設(shè)置Options FollowSymLinksAllowOverride None#不允許覆蓋602)創(chuàng)建源、目錄兩個(gè)目錄及測(cè)試文件#mkdir /var/www/html/realold1,new1#vi /var/www/html/realnew1/index.html內(nèi)容如下: this is /var/www/html/realnew1/index.html 613)在源(舊)目錄中創(chuàng)建.htaccess文件,內(nèi)容如下:RewriteEngine ONRewriteBase /realnew1/Rewr
45、iteRule (.*)$ $1 R=301說(shuō)明說(shuō)明:RewriteEngine ON激活重寫(xiě)引擎。激活重寫(xiě)引擎。RewriteBase /realnew1/是目錄級(jí)重寫(xiě)指是目錄級(jí)重寫(xiě)指令,用來(lái)設(shè)置重寫(xiě)令,用來(lái)設(shè)置重寫(xiě)URL的基礎(chǔ)目錄;的基礎(chǔ)目錄;62說(shuō)明(續(xù))說(shuō)明(續(xù))RewriteRule (.*)$ $1 R=301此指令有此指令有3部分參部分參數(shù):數(shù):第第1個(gè)參數(shù)個(gè)參數(shù)Pattern的值為的值為(.*)$,這是一個(gè)正則表達(dá),這是一個(gè)正則表達(dá)式,其含義是任意字符開(kāi)頭或結(jié)尾的字符串,其式,其含義是任意字符開(kāi)頭或結(jié)尾的字符串,其中中“()()”用來(lái)定義后向引用,也稱為組;用來(lái)定義后向引用,也
46、稱為組;第第2個(gè)參數(shù)個(gè)參數(shù)Subsititution的值是的值是$1,用來(lái)引用前面,用來(lái)引用前面Pattern中定義的第一對(duì)中定義的第一對(duì)“()()”中的內(nèi)容;中的內(nèi)容;第第3個(gè)參數(shù)個(gè)參數(shù)的值是的值是R=301,R表示外部重定向,表示外部重定向,301表示永久移動(dòng)。表示永久移動(dòng)。634)測(cè)試,在客戶機(jī)上輸入/realold1/,參見(jiàn)圖6-5所示。圖圖6-5 重寫(xiě)規(guī)則應(yīng)用之重定向之前重寫(xiě)規(guī)則應(yīng)用之重定向之前64按鍵后,出現(xiàn)如下內(nèi)容,參見(jiàn)圖6-6 圖圖6-6 重寫(xiě)規(guī)則應(yīng)用之重定向效果重寫(xiě)規(guī)則應(yīng)用之重定向效果 65(2)目標(biāo)不在文檔根下的示例)目標(biāo)不在文檔根下的示例
47、 本示例的文檔根仍為/var/www/html,源(舊)目錄為/var/www/html/realold2,目標(biāo)(新)目錄是/var/www/html2/realnew2。 很明顯二者不在同一個(gè)文檔根下,下面介紹具體實(shí)現(xiàn)步驟。661)編輯Apache主配置文件主配置文件httpd.conf,加入以下內(nèi)容:#針對(duì)源(舊)目錄進(jìn)行設(shè)置Options FollowSymLinksAllowOverride AllAlias /aliasnew2/ /var/www/html2/realnew2/#給目標(biāo)(新)目錄定義別名為/aliasnew2/,后面.htaccess文件中要用到此別名 Option
48、s FollowSymLinks AllowOverride None說(shuō)明:說(shuō)明:由于源和目標(biāo)不在同一個(gè)文檔根下,在訪問(wèn)時(shí)必須用別名必須用別名。672)創(chuàng)建源和目標(biāo)目錄及測(cè)試文件:#mkdir /var/www/html/realold2#mkdir /var/www/html2/realnew2#vi /var/www/html2/realnew2/index.html內(nèi)容如下: this is /var/www/html2/realnew2/index.html683)在源(舊)目錄/var/www/html/realold2中創(chuàng)建.htaccess文件,其內(nèi)容如下:RewriteEngine OnRewriteBase /aliasnew2/RewriteRule (.*)$ $1 R=301說(shuō)明:此處需要說(shuō)明的是,由于目標(biāo)(新)目錄不在文檔根下,所以在訪問(wèn)時(shí)需要用到別名,在此處定義重寫(xiě)基礎(chǔ)目錄時(shí)設(shè)置的目錄也為別名,而且與Apache主配置文件中定義的別名相同,即/aliasnew2/。其他指令的功能同上例,這里不再贅述。694)測(cè)試,在客戶機(jī)上輸入/realold2/
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)商務(wù)活動(dòng)策劃與組織制度
- 2026湖北省定向浙江大學(xué)選調(diào)生招錄考試備考題庫(kù)附答案
- 2026甘肅省隴南市徽縣恒輝學(xué)校招聘參考題庫(kù)附答案
- 2026福建省面向北京師范大學(xué)選調(diào)生選拔工作考試備考題庫(kù)附答案
- 2026西藏日喀則市薩迦縣選(聘)任社區(qū)工作者20人參考題庫(kù)附答案
- 2026重慶對(duì)外建設(shè)(集團(tuán))有限公司招聘項(xiàng)目經(jīng)理、項(xiàng)目總工程師等崗位11人備考題庫(kù)附答案
- 2026陜西省面向中國(guó)海洋大學(xué)招錄選調(diào)生備考題庫(kù)附答案
- 2026順義區(qū)大孫各莊社區(qū)衛(wèi)生服務(wù)中心第一次編外招聘4人參考題庫(kù)附答案
- 興國(guó)縣2025年公開(kāi)選調(diào)鄉(xiāng)鎮(zhèn)敬老院院長(zhǎng)的備考題庫(kù)附答案
- 吉安市2025年度市直事業(yè)單位公開(kāi)選調(diào)工作人員【70人】備考題庫(kù)附答案
- 塔里木油田管理辦法
- 去極端化宣傳課件
- 2025至2030中國(guó)智能VR手術(shù)眼鏡市場(chǎng)發(fā)展現(xiàn)狀及未來(lái)前景預(yù)測(cè)分析報(bào)告
- 2025春季學(xué)期國(guó)開(kāi)電大本科《人文英語(yǔ)4》一平臺(tái)機(jī)考真題及答案(第八套)
- 委托貸款購(gòu)車協(xié)議書(shū)
- 婚后子女撫養(yǎng)協(xié)議書(shū)
- R-Breaker交易系統(tǒng)策略(TB版)
- TSG R0005-2011移動(dòng)式壓力容器安全技術(shù)監(jiān)察規(guī)程
- 汽車品牌口碑管理與維護(hù)
- 2025-2030中國(guó)母嬰水市場(chǎng)銷售格局及企業(yè)經(jīng)營(yíng)發(fā)展分析研究報(bào)告
- 標(biāo)準(zhǔn)檢驗(yàn)指導(dǎo)書(shū)(SIP)-鈑金
評(píng)論
0/150
提交評(píng)論