第5、6章 web網(wǎng)站服務(wù)
胡勇軍web 網(wǎng)站服務(wù)Apache在 Linux 系統(tǒng)中通過 Apache 來搭建web 網(wǎng)站服務(wù)特點(diǎn):開放源代碼、跨平臺應(yīng)用支持多種網(wǎng)頁編程語言模塊化設(shè)計(jì)、運(yùn)行穩(wěn)定、良好的安全性安裝Apache2.
胡勇軍
web 網(wǎng)站服務(wù)
Apache
在 Linux 系統(tǒng)中通過 Apache 來搭建web 網(wǎng)站服務(wù)
特點(diǎn):
開放源代碼、跨平臺應(yīng)用
支持多種網(wǎng)頁編程語言
模塊化設(shè)計(jì)、運(yùn)行穩(wěn)定、良好的安全性
安裝Apache2.4.4.
源碼包安裝 Apache (確保系統(tǒng)沒有安裝 rpm 包的 Apache 服務(wù))
安裝前準(zhǔn)備 解壓包apache 軟件包 解壓插件apr 和apr-util 壓縮包, 并復(fù)制到apache 源碼目錄下的srclib 目錄下, 并去掉版本號
安裝編譯工具: gcc 、gcc-c 、make 、pcre-devel
1. 配置
./configure --prefix=/usr/local/apache
--enable-so
--enable-rewrite
胡勇軍
,胡勇軍
--enable-charset-list --enable-mods-shared=most
--with-mpm=worker
(--enable-mods-shared=most 動態(tài)編譯為DSO 模塊
--with-mpm=worker 配置apache 以何種模式編譯
‐‐prefix=/usr/local/apache2安裝位置 ‐‐enable‐so支持動態(tài)加載模塊 ‐‐enable‐rewrite支持URL 重寫 ‐‐enable‐charset‐‐lite支持字符集)
2. 編譯
make
3. 安裝
Apache 的安裝目錄和文件
服務(wù)目錄:/usr/local/apache/ (配置時指定的)
主配置文件:/usr/local/apache/conf/httpd.conf
網(wǎng)頁目錄:/usr/local/apache/htdocs/
服務(wù)腳本:/usr/local/apache/bin/apchectl
執(zhí)行程序:/usr/local/apache/bin/httpd
訪問日志:/usr/local/apache/logs/access_log
錯誤日志:/usr/local/apache/logs/error_log
胡勇軍 make install
,胡勇軍
源碼包安裝 apache 服務(wù)后,為了更方便得管理,可以把程序腳本添加到默認(rèn)搜索路徑,即修改 PATH 變量,或者給程序腳本創(chuàng)建鏈接到 PATH 中存在的目錄中。
修改 PATH 變量:PATH=$PATH:/usr/local/apache/bin (此修改在重啟系統(tǒng)后失效,可以寫在/etc/profile等文件中) 創(chuàng)建鏈接:
ln ‐s /usr/local/apache/bin/* /usr/local/bin
管理:apachectl { start | restart | stop }
也可以將 httpd 添加為系統(tǒng)服務(wù),通過 service 和 chkconfig 來管理。
復(fù)制服務(wù)腳本至/etc/rc.d/init.d或/etc/init.d目錄中
cp /usr/local/apache/bin/apachectl /etc/init.d/httpd
編輯/etc/init.d/httpd
chkconfig :服務(wù)識別參數(shù),35表示在級別 3和 5種開機(jī)自啟, 88和 18表示啟動和關(guān)閉的順序
description :服務(wù)的描述信息 chkconfig --add httpd
管理:service httpd { start | restart | stop }
查看服務(wù)是否啟用:netstat -auptn | grep
胡勇軍
,胡勇軍
( httpd服務(wù)即 apache 服務(wù))
主配置文件中的常用全局配置項(xiàng)
ServerRoot :httpd 服務(wù)的根目錄
Listen :監(jiān)聽的端口號,默認(rèn)為 80
User 和 Group :運(yùn)行 httpd 進(jìn)程的用戶和組身份 ServerAdmin :管理員郵箱
ServerName :網(wǎng)站服務(wù)器的域名(FQDN)
DocumentRoot:網(wǎng)頁文檔的根目錄
DirectoryIndex :默認(rèn)文檔,多個以空格隔開 Include :include 引入其他配置文件
PidFile :保存httpd 進(jìn)程PID 號的文件
ErrorLog :錯誤日志文件的位置
CustomLog :訪問日志文件的位置
LogLevel :記錄日志的級別,默認(rèn)為 warn
Timeout :網(wǎng)絡(luò)連接超時,默認(rèn)為 300秒
KeepAlive :是否保持連接,可選 On 或 Off
MaxKeepAliveRequests :每次連接最多請求文件數(shù) KeepAliveTimeout :保持連接狀態(tài)時的超時時間
日志查看:cat /usr/local/apache/logs/access_log
胡勇軍
,胡勇軍
部署 AWStats 分析日志
解壓 awstats 軟件包,移至/usr/local目錄下 unzip awstats-7.0.zip mv awstats-7.0 /usr/local/awstats 切換到 awstats/tools目錄下,執(zhí)行 awstats_configure.pl,創(chuàng)建配置文件,進(jìn)入交互式界面,根據(jù)提示配置。
./ awstats_configure.pl 修改站點(diǎn)配置文件 vi /etc/awstats/awstats.* 指定分析的日志和指定存放統(tǒng)計(jì)數(shù)據(jù)的目錄 LogFile="/usr/local/apache/logs/access_log" DirData=/var/lib/awstats 創(chuàng)建存放統(tǒng)計(jì)數(shù)據(jù)的目錄 mkdir /var/lib/awstats 執(zhí)行日志分析,更新統(tǒng)計(jì)數(shù)據(jù) /usr/local/awstats/tools/awstats_updateall.pl now
(為了提高日志準(zhǔn)確性,需要設(shè)置周期性計(jì)劃任務(wù)定時更新統(tǒng)計(jì)
數(shù)據(jù))
查看日志分析:
胡勇軍
,胡勇軍
區(qū)域配置項(xiàng):
Order deny,allow 訪問控制類型
allow [Deny ] from all 允許[禁止]任何人訪問 Require all granted 授權(quán)所有用戶訪問
區(qū)域配置項(xiàng)針對某一個網(wǎng)頁目錄設(shè)置,以
Options :訪問鏈接方式,有多種,例如 Options Indexes 表示允許以目錄形式訪問, 即如果沒有默認(rèn)文檔, 就以目錄形式直接訪問此目錄中的文件內(nèi)容。
Require :要求授權(quán)用戶才能訪問,all granted表示授權(quán)所有用戶,all denied則表示都不授權(quán)
Order :用來配置客戶機(jī)的訪問限制,控制選項(xiàng)有兩種 allow,deny :拒絕所有未明確允許的客戶機(jī) (白名單) deny,allow :允許所有未明確拒絕的客戶機(jī) (黑名單) 通胡勇軍
,胡勇軍
過 Deny from來列出拒絕/允許的主機(jī)列表。可以是 IP 地址、IP 網(wǎng)段、主機(jī)名、域名等,多個以空格隔開。使用 “all ” 表示任意主機(jī)。
例如:(只允許192.168.1.0 網(wǎng)段和192.168.2.9 的主機(jī)訪問)
Order allow,deny allow from 192.168.1.0/24 192.168.2.9
用戶授權(quán)限制
1. 創(chuàng)建用戶認(rèn)證數(shù)據(jù)文件(會提示輸入密碼)
htpasswd -c /usr/local/apache/conf/.user tom -c :新建數(shù)據(jù)文件,若文件已存在,則不用添加
2. 添加用戶授權(quán)配置
在區(qū)域配置
AuthName :受保護(hù)區(qū)域名稱 AuthType :認(rèn)證類型 AuthUserFile :認(rèn)證文件路徑 Require :要求授權(quán)用戶才能訪問, valid-user
表示認(rèn)證文件胡勇軍
,胡勇軍
中的 所有合法用戶,也可以指定用戶(如 tom )
虛擬主機(jī)和虛擬目錄等區(qū)域性配置一般寫在單獨(dú)的配置文件中,然后在主配置文件中使用include 引入,方便管理
(注:在主配置文件中的所有相對路徑都是基于apache 的根目錄的,也就是/usr/local/apache)
虛擬主機(jī) (一臺主機(jī)上管理多個不同的網(wǎng)站)
虛擬主機(jī)的三種實(shí)現(xiàn)方式:基于 IP 、端口號、主機(jī)名 配置 ( httpd.conf )
虛擬主機(jī)的配置和區(qū)域配置一樣,配置項(xiàng)寫在在一對標(biāo)簽
基于 IP 的虛擬主機(jī)
胡勇軍
胡勇軍
通過不同IP 訪問不同的網(wǎng)站
● 基于不同端口虛擬主機(jī)
首先 httpd 服務(wù)要監(jiān)聽設(shè)定端口在主配置文件中通過 Listen 選項(xiàng)設(shè)置
Listen 8001 Listen 8002
● 基于域名的虛擬主機(jī)
胡勇軍 通過 http://192.168.1.1:端口號進(jìn)行訪問
,胡勇軍
通過域名進(jìn)行訪問
注:基于域名的虛擬主機(jī)需要DNS 支持,且設(shè)置了域名虛擬主機(jī),再通過IP 進(jìn)行訪問時,訪問的是第一個虛擬主機(jī)。
虛擬目錄
通過Alias 來定義
訪問:http://域名/虛擬目錄名
胡勇軍 例如:http://www.benet.com/vdir