天天看點

Web網站服務

Web網站服務

一、Apache網站服務基礎

1.Apache簡介

1)Apache的起源

"Apache HTTP Server"開源軟體項目傑出代表,使用标準HTTP網絡協定提供網頁浏覽服務,可運作在多種作業系統平台中;使用标準B/S架構

Apache是針對之前出現的若幹個Web伺服器程式進行整合、完善後形成的軟體,其名源于"A Patchy Server",意為“基于原有Web服務程式的代碼進行修改(更新檔)後形成的伺服器程式"

2)Apache的主要特點

開放源代碼:任何人都可自由使用,充分展現開源軟體精神

跨平台應用:可運作在絕大多數軟硬體平台,這得益于Apache的源代碼開放

支援各種Web程式設計語言:可支援Perl、PHP、Python、Java、ASP等

子產品化設計:将Apache功能分為各種子產品,需要什麼功能直接加載對應子產品;并且支援商業自行開發子產品

運作穩定:可用于建構具有大負載通路量的Web站點

良好的安全性:維護團隊及時對已發現漏洞提供修補程式

3)Apache的主要版本

1.X:最高1.3,該版本繼承Apache伺服器1.0版本以來的優秀特性和配置管理風格,具有良好相容、穩定性;目前已停止維護

2.X:Apache加入許多新的功能,新的配置文法和管理風格

4)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 協定版本

2.安裝httpd伺服器

1)準備工作

chkconfig --level 35 iptables off

vim /etc/sysconfig/selinux

SELINUX=disabled

rpm -e httpd --nodeps //解除安裝使用RPM方式安裝的httpd

vim /etc/sysconfig/network-scripts/ifcfg-eth0 //配置網絡位址

DEVICE=eth0

TYPE=Ethernet

ONBOOT=yes

NM_CONTROLLED=no

BOOTPROTO=static

IPADDR=192.168.1.10

NETMASK=255.255.255.0

vim /etc/sysconfig/network //修改主機名

NETWORKING=yes

HOSTNAME=www.xueluo.org

getenforce //檢視目前Selinux狀态

reboot

2)源碼編譯及安裝

a.解包

b.配置

./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi

選項:

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

--enable-so:啟動動态加載子產品支援,使其具有擴充能力;是用來提供DSO支援的核心子產品

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

--enable-charset-lite:啟用字元集支援,以支援使用各種字元集編碼的網頁

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

c.編譯及安裝

make && make install

3)确認安裝結果

ls /usr/local/httpd

服務目錄:/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為系統服務(可通過chkconfig工具控制開機自啟)

cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd

//拷貝預設腳本檔案到系統控制目錄

//檔案開頭添加chkconfig識别配置,不添加chkconfig添加服務時報錯

二、httpd伺服器的基本配置

1.Web站點的部署過程

1)确定網站名稱、IP位址

需申請合法公網IP位址,并向DNS提供商申請域名,做對應主機的DNS解析記錄

公司内部使用可自行配置,無需公網IP,但如需内部使用域名可搭建DNS并對對應解析記錄添加,修改/etc/hosts檔案提高本地解析速度

2)配置并啟動httpd服務

a.配置httpd服務

vim /usr/local/httpd/conf/httpd.conf //編輯httpd主配置檔案

...

ServerName www.xueluo.com:80

//尋找該行(97行) ,設定網站名稱

//檢測httpd.conf檔案是否有文法錯誤;“Syntax OK”則無誤

b.啟動httpd服務

/etc/init.d/httpd start

3)部署網頁文檔

編譯安裝的httpd服務,網站根目錄為/usr/local/httpd/htdocs目錄下,将網頁文檔複制到此目錄即可;預設提供index.html測試網頁

4)在客戶機中通路Web站點

5)檢視Web站點的通路情況

通路日志: /usr/local/httpd/log/access_log

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

tail -f /usr/local/httpd/logs/access_log

2.httpd.conf配置檔案

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)區域配置項

<Directory /> 限制根目錄的通路權限

Options FollowSymLinks

控制選項,允許使用符号連結;通路到符号連接配接時,是否跳轉到對應的連接配接路徑

AllowOverride None

不允許隐含控制檔案中的覆寫配置;是否去找.htaccess檔案作為配置檔案

Order deny,allow

通路控制政策的應用順序;先檢查禁止設定,沒有禁止的全部允許

Deny from all

禁止任何人通路此區域

</Directory>

三、網站通路情況統計

1.部署AWStats分析系統

1)安裝awstats軟體包

mv awstats-7.3 /usr/local/awstats

//移動解壓縮目錄;該軟體為綠色版直接可用

2)為要統計的站點建立配置檔案

cd /usr/local/awstats/tools/ //進入工具目錄

chmod +x awstats_configure.pl //給予配置腳本執行權限

a.指定httpd主配置檔案路徑

b.設定日志類型

需将httpd伺服器的日志記錄格式為“combined”(預設為common)

c.為指定Web站點建立配置檔案

d.後續配置工作

接下來會自動重新開機httpd服務(前提/etc/init.d/httpd腳本存在)

如若還需統計其它站點,再次運作./awstats_configure.pl

3)修改站點統計配置檔案

vim /etc/awstats/awstats.www.xueluo.org.conf

50 LogFile="/usr/local/httpd/logs/access_log"

4)執行日志分析,并設定cron計劃任務

chmod +x awstats_updateall.pl //給予更新腳本執行權限

./awstats_updateall.pl now //立即更新awstats資訊并統計到統計資料庫中

2.通路AWStats分析系統

http://192.168.1.10/awstats/awstats.pl?config=www.xueluo.org

//實作自動調整網頁,簡化通路操作

http://192.168.1.10/awstats.html