簡介:
apache http server(簡稱apache)是現在使用世界排名第一的web服務器,幾乎可以應用在任何平台。它是一個開源的網頁服務器,特點是簡單,速度快,穩定性高,還可以作為代理服務器。
特性:
- 支持最新的HTTP/1.1通信協議
- 配置文件簡單,易操作,用戶可以通過直接修改apache的配置文件信息來修改apache
- 支持實時監控服務器狀態和定制服務器日志
- 支持基於IP和基於域名的虛擬主機
- 支持多種方式的HTTP認證
- 支持服務端包含指令(SSI)
- 支持安全Socket層(SSL)
- 支持用戶會話過程的跟蹤
- 支持FastCGI
- 通過第三方模塊可以支持JavaServlets
- 支持多進程
安裝
linux下 yum install httpd
啟動,停止命令
service httpd start 啟動
service httpd stop 停止
service httpd restart 重啟
Apache主要目錄和配置
查看apache全部配置內容 cat httpd.conf|egrep -v".*#|$"|nl
配置 | 解釋 |
---|---|
ServerRoot "/etc/httpd" | apache的安裝目錄 |
Listen 80 | 監聽端口 |
user apache | apache的用戶默認 |
Group apache | apache的組默認 |
ServerAdmin root@localhost.com | 系統管理員郵箱 |
ServerName localhost:80 | 服務器名稱 |
|
對根目錄的限制 |
AllowOverride none | 表示禁止用戶對目錄配置文件(.htaccess進行修改)重載,普通站點不建議開啟 |
Require all denied | 拒絕所有來源訪問 |
DocumentRoot “/var/www/html" | apache的默認web站點目錄路徑 |
apache 工作模式
Apache一共有3中MPM(多進程處理模塊),prefork,worker,event。
Prefork MPM:在啟動之初,會預派生fork一些子進程,然后等待請求進來,並且總會保持一些備用的子進程,同時派生出的每個子進程中都只有一個進程,在一個時間點內,只能處理一個請求。
worker MPM:是使用了多進程+多線程的模式。它也預先fork了幾個子進程(數量比較少),每個子進程能夠生成一些服務線程和一個監聽線程,該監聽線程監聽接入請求並將其傳遞給服務線程處理和應答。
event MPM:event MPM中,會有一個專門的線程來管理這些 keep-alive 類型的線程,當有真實請求過來的時候,將請求傳遞給服務線程,執行完畢后,又允許它釋放。這樣,一個線程就能處理幾個請求了,實現了異步非阻塞。
apache監控
在配置文件添加一段Location,配置完后重啟apache,訪問http://ip地址/server-status
將此段代碼取消注釋,並修改為如下所示
ExtendedStatus On
<Location /server-status>
SetHandler server-status
Order Deny,Allow
Allow from all
</Location>
保存退出,重啟 service httpd restart
定時刷新 http://ip/server-status?refresh=N,每 N 秒自動刷新一次。
采集數據 http://ip/server-status?auto
apache監控指標
linux下監控apache
1.用 ps 來看 httpd 進程數: ps aux|grep httpd|wc -l
2.用 netstat 來看當前的連接數:netstat -ant|grep ":80"|wc -l
3.實時檢測httpd連接數:watch -n 1 -d “pgrep httpd|wc -l”
4.計算httpd進程占用內在的平均數:ps aux|grep -v grep|awk ‘/httpd/{sum+=$6}; END{print sum/n}’
5.查看Apache的並發請求數及期TCP連接狀態:netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'