web概述與httpd部署

Web網站服務
一、Apache網站服務基礎
1.Apache簡介
1)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)
"Apache HTTP Server"爲ASF旗下著名軟件項目之一,正式名稱爲"httpd"

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.解包

tar -zxvf /root/httpd-2.2.17.tar.gz -C /usr/src/

cd /usr/src/httpd-2.2.17/

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
//拷貝默認腳本文件到系統控制目錄

vim /etc/init.d/httpd
    # chkconfig:35 82 21        /服務識別參數,指定3、5級別順序啓動標識號
    # description:Startup script for the Apache HTTP Server

//文件開頭添加chkconfig識別配置,不添加chkconfig添加服務時報錯

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

chkconfig --list httpd          //查看httpd服務的自啓動狀態

二、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行) ,設置網站名稱

apachectl -t

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

b.啓動httpd服務
/etc/init.d/httpd start

netstat -utpln | grep httpd

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

tail -f /usr/local/httpd/logs/error_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軟件包

tar -zxvf awstats-7.3.tar.gz            //解壓縮

mv awstats-7.3 /usr/local/awstats
//移動解壓縮目錄;該軟件爲綠色版直接可用

2)爲要統計的站點建立配置文件
cd /usr/local/awstats/tools/ //進入工具目錄

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

./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"
...

mkdir /var/lib/awstats              //創建數據存放目錄

4)執行日誌分析,並設置cron計劃任務
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.訪問AWStats分析系統
http://192.168.1.10/awstats/awstats.pl?config=www.xueluo.org

vim /usr/local/httpd/htdocs/awstats.html
   <html>
   <head>
   <meta http-equiv=refresh content="0;url=http://192.168.1.10/awstats/awstats.pl?config=www.xueluo.org">
    </head>
    <body>
    </body>
    </html>

//實現自動調整網頁,簡化訪問操作
http://192.168.1.10/awstats.html

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