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