Apache網站服務

一、Apache簡介


  • "Apache HTTP Server"開源軟件項目傑出代表,使用標準HTTP網絡協議提供網頁瀏覽服務,可運行在多種操作系統平臺中;使用標準B/S架構
  • Apache是針對之前出現的若干個Web服務器程序進行整合、完善後形成的軟件,其名源於"A Patchy Server",意爲“基於原有Web服務程序的代碼進行修改(補丁)後形成的服務器程序"
  • 1995發佈1.0版本,後有"Apache Group"負責該項目的管理和維護;1999年在"Apache Group"基礎成立Apache軟件基金會(Apache Software Foundation,ASF)
  • 爲ASF旗下著名軟件項目之一,正式名稱爲"httpd"

二、Apache特點


  • 開放源代碼:任何人都可自由使用,充分體現開源軟件精神
  • 跨平臺應用:可運行在絕大多數軟硬件平臺,這得益於Apache的源代碼開放
  • 支持各種Web編程語言:可支持Perl、PHP、Python、Java、ASP等
  • 模塊化設計:將Apache功能分爲各種模塊,需要什麼功能直接加載對應模塊;並且支持商業自行開發模塊
  • 運行穩定:可用於構建具有大負載訪問量的Web站點
  • 良好的安全性:維護團隊及時對已發現漏洞提供修補程序

三、Apache版本


  • 1.X:最高1.3,該版本繼承Apache服務器1.0版本以來的優秀特性和配置管理風格,具有良好兼容、穩定性;目前已停止維護
  • 2.X:Apache加入許多新的功能,新的配置語法和管理風格

四、httpd錯誤代碼


  • 100(繼續) - 請求者應當繼續提出請求。服務器返回此代碼表示已收到請求的第一部分,正在等待其餘部分
  • 101(切換協議) - 請求者已要求服務器切換協議,服務器已確認並準備切換
  • 200(成功) - 服務器已成功處理了請求。通常,這表示服務器提供了請求的網頁。如果是對您的 robots.txt 文件顯示此狀態碼,則表示 Googlebot 已成功檢索到該文件
  • 201(已創建) - 請求成功並且服務器創建了新的資源
  • 202(已接受) - 服務器已接受請求,但尚未處理
  • 203(非授權信息) - 服務器已成功處理了請求,但返回的信息可能來自另一來源
  • 204(無內容) - 服務器成功處理了請求,但沒有返回任何內容
  • 205(重置內容) - 服務器成功處理了請求,但沒有返回任何內容。與 204 響應不同,此響應要求請求者重置文檔視圖(例如,清除表單內容以輸入新內容)
  • 206(部分內容) - 服務器成功處理了部分 GET 請求
  • 300(多種選擇) - 針對請求,服務器可執行多種操作。服務器可根據請求者 (user agent) 選擇一項操作,或提供操作列表供請求者選擇
  • 301(永久移動) - 請求的網頁已永久移動到新位置。服務器返回此響應(對 GET 或 HEAD 請求的響應)時,會自動將請求者轉到新位置。您應使用此代碼告訴 Googlebot 某個網頁或網站已永久移動到新位置
  • 302(臨時移動) - 服務器目前從不同位置的網頁響應請求,但請求者應繼續使用原有位置來響應以後的請求。此代碼與響應 GET 和 HEAD 請求 的 301 代碼類似,會自動將請求者轉到不同的位置,但您不應使用此代碼來告訴 Googlebot 某個網頁或網站已經移動,因 爲 Googlebot 會繼續抓取原有位置並編制索引
  • 303(查看其他位置) - 請求者應當對不同的位置使用單獨的 GET 請求來檢索響應時,服務器返回此代碼。對於除 HEAD 之外的所有請求,服務器會自動轉到其他位置
  • 304(未修改) - 自從上次請求後,請求的網頁未修改過。服務器返回此響應時,不會返回網頁內容;如果網頁自請求者上次請求後再也沒有更改過,您應將服務器配置爲返回此響應(稱爲 If-Modified-Since HTTP 標頭)。服務器可以告訴搜索引擎的蜘蛛/機器人 自從上次抓取後網頁沒有變更,進而節省帶寬和開銷
  • 305(使用代理) - 請求者只能使用代理訪問請求的網頁。如果服務器返回此響應,還表示請求者應使用代理
  • 307(臨時重定向) - 服務器目前從不同位置的網頁響應請求,但請求者應繼續使用原有位置來響應以後的請求。此代碼與響應 GET 和 HEAD 請求 的 301 代碼類似,會自動將請求者轉到不同的位置,但您不應使用此代碼來告訴 Googlebot 某個頁面或網站已經移動,因 爲 Googlebot 會繼續抓取原有位置並編制索引
  • 400(錯誤請求) - 服務器不理解請求的語法
  • 401(未授權) - 請求要求身份驗證。對於登錄後請求的網頁,服務器可能返回此響應
  • 403(禁止) - 服務器拒絕請求。如果您在 Googlebot 嘗試抓取您網站上的有效網頁時看到此狀態碼(您可以在 Google 網站管理員工具診斷下的網絡抓取頁面上看到此信息),可能是您的服務器或主機拒絕了 Googlebot 訪問
  • 404(未找到) - 服務器找不到請求的網頁。例如,對於服務器上不存在的網頁經常會返回此代碼;如果您的網站上沒有 robots.txt 文件,而您在 Google 網站管理員工具"診斷"標籤的 robots.txt 頁上看到此狀態碼, 則這是正確的狀態碼。但是,如果您有 robots.txt 文件而又看到此狀態碼,則說明您的 robots.txt 文件可能命名錯誤或位於錯誤的位 置(該文件應當位於頂級域,名爲 robots.txt);如果對於 Googlebot 抓取的網址看到此狀態碼(在"診斷"標籤的 HTTP 錯誤頁面上),則表示 Googlebot 跟隨的可能是另一個頁面的無效鏈接(是舊鏈接或輸入有誤的鏈接)
  • 405(方法禁用) - 禁用請求中指定的方法
  • 406(不接受) - 無法使用請求的內容特性響應請求的網頁
  • 407(需要代理授權) - 此狀態碼與 401(未授權)類似,但指定請求者應當授權使用代理。如果服務器返回此響應,還表示請求者應當使用代理
  • 408(請求超時) - 服務器等候請求時發生超時
  • 409(衝突) - 服務器在完成請求時發生衝突。服務器必須在響應中包含有關衝突的信息。服務器在響應與前一個請求相沖突的 PUT 請求時可能會返回此代碼,以及兩個請求的差異列表
  • 410(已刪除) - 如果請求的資源已永久刪除,服務器就會返回此響應。該代碼與 404(未找到)代碼類似,但在資源以前存在而現在不存在的情況下,有時會用來替代 404 代碼。如果資源已永久移動,您應使用 301 指定資源的新位置
  • 411(需要有效長度) - 服務器不接受不含有效內容長度標頭字段的請求
  • 412(未滿足前提條件) - 服務器未滿足請求者在請求中設置的其中一個前提條件
  • 413(請求實體過大) - 服務器無法處理請求,因爲請求實體過大,超出服務器的處理能力
  • 414(請求的 URI 過長) - 請求的 URI(通常爲網址)過長,服務器無法處理
  • 415(不支持的媒體類型) - 請求的格式不受請求頁面的支持
  • 416(請求範圍不符合要求) - 如果頁面無法提供請求的範圍,則服務器會返回此狀態碼
  • 417(未滿足期望值) - 服務器未滿足"期望"請求標頭字段的要求
  • 500(服務器內部錯誤) - 服務器遇到錯誤,無法完成請求
  • 501(尚未實施) - 服務器不具備完成請求的功能。例如,服務器無法識別請求方法時可能會返回此代碼
  • 502(錯誤網關) - 服務器作爲網關或代理,從上游服務器收到無效響應
  • 503(服務不可用) - 服務器目前無法使用(由於超載或停機維護)。通常,這只是暫時狀態
  • 504(網關超時) - 服務器作爲網關或代理,但是沒有及時從上游服務器收到請求
  • 505(HTTP 版本不受支持) - 服務器不支持請求中所用的 HTTP 協議版本

五、部署httpd服務


1.準備工作

  • rpm -e httpd --nodeps //卸載使用RPM方式安裝的httpd
  • sed -i '/HOSTNAME/d;aHOSTNAME=www.hiahia.com' /etc/sysconfig/network //修改主機名
  • sed -i 'a127.0.0.1 www.hiahia.com' /etc/hosts //在hosts文件中添加主機名
  • 所需的軟件包(arp;apr-util;pcre爲httpd的依賴)
    httpd-2.4.34:http://httpd.apache.org
    apr-1.6.3;apr-util-1.6.1:https://apr.apache.org/
    pcre-8.37:https://ftp.pcre.org/pub/pcre/

2.源碼編譯及安裝

(1)安裝依賴apr

tar -jxvf apr-1.6.3.tar.bz2 -C /usr/src/    //解壓源碼包
cd /usr/src/apr-1.6.3    //進入解壓的目錄
./configure --prefix=/usr/local/apr    //指定安裝目錄
make && make install    //編譯並安裝

(2)安裝依賴apr-util

tar -jxvf apr-util-1.6.1.tar.bz2 -C /usr/src/
cd /usr/src/apr-util-1.61
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr    //指定安裝目錄和apr安裝位置
make && make install

(3)安裝依賴pcre

tar -jxvf pcre-8.37.tar.bz2 -C /usr/src/
cd /usr/src/pcre-8.37
./configure --prefix=/usr/local/pcre 
make && make install

(4)安裝httpd

tar -zxvf httpd-2.4.34 -C /usr/src/    //解壓httpd源碼包
cd /usr/src/httpd-2.4.34
./configure --prefix=/usr/local/httpd --enable-so --enable-charset-lite --enable-rewrite --enable-cgi --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre    //配置安裝選項

選項

--prefix:指定程序安裝目錄

--enable-so:啓動動態加載模塊支持,使其具有擴展能力;是用來提供DSO支持的核心模塊

--enable-rewrite:啓動網頁地址重寫功能,用於網站優化及目錄遷移維護

--enable-charset-lite:啓用字符集支持,以支持使用各種字符集編碼的網頁

--enable-cgi:啓用CGI腳本程序支持,擴展網站的應用訪問能力;通常執行CGI會涉及到安全問題,系統的任何都可以調用,所以,一般會把CGI放在一個特定的目錄下執行

--with-apr:指定apr安裝目錄

--with-apr-util:指定apr-util安裝目錄

--with-pcre:指定pcre安裝目錄

make && make install //編譯並安裝

3.確認安裝結果

ls /usr/local/httpd

Apache網站服務

服務目錄:/usr/local/httpd/

主配置文件:/usr/local/httpd/conf/httpd.conf

網頁目錄:/usr/local/httpd/htdocs/

服務腳本:/usr/local/httpd/bin/apachectl

執行程序:/usr/local/httpd/bin/httpd

訪問日誌: /usr/local/httpd/logs/access_log

錯誤日誌: /usr/local/httpd/logs/error_log

4.優化執行路徑

ln -s /usr/local/httpd/bin/* /usr/local/bin/    //添加到PATH搜索路徑中,用戶不需完整命令路徑即可使用

5.添加httpd爲系統服務

cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd    //拷貝默認腳本文件到系統控制目錄
vim /etc/init.d/httpd
#chkconfig:35 66 66     //服務識別參數,指定3、5級別順序啓動標識號
#description:Startup script for the Apache HTTP Server    //文件開頭添加chkconfig識別配置,不添加chkconfig添加服務時報錯

Apache網站服務

chkconfig --add httpd           //將httpd添加爲系統服務

六、httpd服務器的基本配置


1.Web站點的部署過程

(1)確定網站名稱、IP地址

需申請合法公網IP地址,並向DNS提供商申請域名,做對應主機的DNS解析記錄
公司內部使用可自行配置,無需公網IP,但如需內部使用域名可搭建DNS並對對應解析記錄添加,修改/etc/hosts文件提高本地解析速度

(2)配置並啓動httpd服務

vim /usr/local/httpd/conf/httpd.conf            //編輯httpd主配置文件
...
   ServerName www.hiahia.com:80
...
//尋找該行(97行) ,設置網站名稱

Apache網站服務

apachectl -t    //檢測httpd.conf文件是否有語法錯誤;“Syntax OK”則無誤
/etc/init.d/httpd start     //啓動httpd服務
netstat -utpln | grep httpd    //過濾是否開啓服務

Apache網站服務

(3)部署網頁

編譯安裝的httpd服務,網站根目錄爲/usr/local/httpd/htdocs目錄下,將網頁文檔複製到此目錄即可;默認提供index.html測試網頁

(4)在客戶端訪問網站主頁

Apache網站服務

(5)查看站點訪問情況

訪問日誌: /usr/local/httpd/log/access_log

錯誤日誌: /usr/local/httpd/log/error_log

2.httpd.conf配置文件

Apache官方文檔:http://httpd.apache.org/docs/2.4/

(1)全局配置項

ServerRoot:服務目錄

ServerAdmin:管理員郵箱

User:運行服務的用戶身份;默認daemon

Group:運行服務的組身份;默認daemon

ServerName:網站服務器的域名

DocumentRoot:網頁文檔的根目錄

Listen:監聽的IP地址、端口號;默認80端口

DirectoryIndex:默認的索引頁文件;默認首頁文件index.html

ErrorLog:錯誤日誌文件的位置

CustomLog:訪問日誌文件的位置;默認類型common

LogLevel:記錄日誌的級別,默認爲warn(警告)

Timeout:網絡連接超時,默認爲300秒

KeepAlive:是否保持連接,可選On或Off

MaxKeepAliveRequests:每次連接最多請求文件數

KeepAliveTimeout:保持連接狀態時的超時時間

Include:需要包含進來的其他配置文件

(2)區域配置項(常用)

httpd-2.2.X
<Directory /> 限制根目錄的訪問權限
Options FollowSymLinks
AllowOverride None
Order deny,allow
訪問控制策略的應用順序;先檢查禁止設定,沒有禁止的全部允許
Deny from all
禁止任何人訪問此區域
</Directory>

httpd-2.4.X
<Directory /> 限制根目錄的訪問權限
Options FollowSymLinks
控制選項,允許使用符號鏈接;訪問到符號連接時,是否跳轉到對應的連接路徑
AllowOverride None
不允許隱含控制文件中的覆蓋配置;是否去找.htaccess文件作爲配置文件
Require all granted
允許任何人訪問此區域
</Directory>

七、網站訪問情況統計


1.部署AWStats分析系統

(1)安裝awstats軟件包

awstat:http://www.awstats.org/

tar -zxvf awstats-7.7.tar.gz    //解包
mv awstats-7.7 /usr/local/awstats    //移動解壓縮目錄;該軟件爲綠色版直接可用

(2)修改httpd配置文件

Apache網站服務

//CGI腳本模塊支持和訪問權限設置

(3)安裝perl環境支持

yum -y install perl perl-devel perl-CGI

(4)爲要統計的站點建立配置文件

cd /usr/local/awstats/tools/    //進入工具目錄
chmod +x awstats_configure.pl    //給予配置腳本執行權限
./awstats_configure.pl    //運行配置腳本

指定httpd主配置文件路徑

Apache網站服務

設置日誌類型

Apache網站服務

爲指定Web站點創建配置文件

Apache網站服務

後續配置工作

接下來會自動重啓httpd服務(前提/etc/init.d/httpd腳本存在)
如若還需統計其它站點,再次運行./awstats_configure.pl

(5)修改站點統計配置文件

vim /etc/awstats/awstats.www.hiahia.com.conf
50   LogFile="/usr/local/httpd/logs/access_log"    //指定httpd訪問日誌所在位置
mkdir /var/lib/awstats    //創建數據存放目錄

(6)執行日誌分析並設置週期性計劃任務

chmod +x awstats_updateall.pl           //給予更新腳本執行權限
./awstats_updateall.pl now      //立即更新awstats信息並統計到統計數據庫中
crontab -e
*/5 * * * *  /usr/local/awstats/tools/awstats_updateall.pl now
/etc/init.d/crond start && chkconfig --level 35 crond on

2.web訪問AWStats分析系統

瀏覽器訪問http://192.168.1.151/awstats/awstats.pl?config=www.hiahia.com

Apache網站服務

也可通過編寫網頁跳傳,實現自動跳傳網頁,簡化訪問地址
vim /usr/local/httpd/htdocs/awstats.html
<html>
<head>
<meta http-equiv=refresh content="0;url=http://192.168.1.151/awstats/awstats.pl?config=www.hiahia.com"&gt;
</head>
<body>
</body>
</html>
瀏覽器訪問:http://192.168.1.151/awstats.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章