apache使用詳解

Apache是世界使用排名第一的Web服務器軟件。它可以運行在幾乎所有廣泛使用的計算機平臺上,由於其跨平臺和安全性被廣泛使用,是最流行的Web服務器端軟件。接下來,我們通過一系列實驗,來對其有一個更加深入的瞭解。

 

1.通過yum安裝httpd服務

[root@wh1 ~]# yum install httpd

2.配置文件全局配置配置信息詳解

1) 配置持久連接

KeepAlive <On|Off> #是否開啓持久連接功能
MaxKeepAliveRequest 100 #一次持久連接最大的請求個數
KeepAliveTimeout 15 #持久連接的超時時間

2) 配置監聽IP和端口

Listen [IP:]Port #設置監聽的IP地址以及端口,本選項可以指定多個,以支持監聽多個IP及端口

3) 模塊動態裝卸載

LoadModule ModuleName /path/to/module
#可以在終端使用如下命令查看已裝載的模塊
[root@wh1 ~]# httpd -D DUMP_MODULES
Loaded Modules:
 core_module (static)
 mpm_prefork_module (static)
 ......
 dnssd_module (shared)
 php5_module (shared)
 ssl_module (shared)
Syntax OK

4) 指定站點根目錄

DocumentRoot /path/to/documentroot #定義網頁文件所在的目錄

5) 定義默認主頁信息

DirectoryIndex index.html index.php .... #各參數之間以空格分割

6) 路徑別名

Alias url/ /path/ #注意,末尾的“/”要保持一致,有則都有,無則均無

7) 默認字符集設置

AddDefaultCharset 字符集 
#常用中文字符集有:GB2310,GB18030,GBK
#通用字符集:UTF-8,UTF-16

8) 配置支持CGI腳本

ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" #將CGI腳本執行路徑定義到指定路徑
 
<Directory "/var/www/cgi-bin"> #設置cgi腳本路徑的訪問控制,下方對其中參數有詳細說明
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>

3.訪問控制

a) 基於IP地址的訪問控制

Order allow,deny #默認拒絕所有
Order deny,allow #默認允許所有
Allow|Deny from {all|ipaddr|NetworkAddress}
其中Networkaddress格式可以爲以下幾種
172.16 
            172.16.0.0 
            172.16.0.0/16 
                172.16.0.0 255.255.0.0

b) 基於用戶認證的訪問控制

#基於用戶的訪問認認證有basic和digest兩種
#認證文件有文本文件:.htpasswd,SQL數據庫,DBM:數據庫引擎以及ldap
#下面我們以基於文本文件的basic認證來配置
#=========================================================
#1.確保基本認證模塊已經加載
LoadModule auth_basic_module modules/mod_auth_basic.so
#2.創建認證文件,添加用戶
#htpasswd FILE USERNAME
#-c:文件不存在時則創建文件
#-m:使用MD5加密密碼
#-D:刪除用戶
[root@wh1 ~]# htpasswd -c -m /etc/httpd/.passwd test1
New password: 
Re-type new password: 
Adding password for user test1
[root@wh1 ~]# htpasswd  -m /etc/httpd/.passwd test2
New password: 
Re-type new password: 
Adding password for user test2
[root@wh1 ~]# cat /etc/httpd/.passwd 
test1:$apr1$dgaArWEk$U04MnXH2HBRT/P5fUoj2P0
test2:$apr1$N4uhZ492$1L70450o982fZPQmbd594/
#3.爲目錄配置用戶認證
[root@wh1 conf.d]# vim auth.conf 
 
<Directory /var/www/html/auth>
    options none
    AllowOverride AuthConfig
    AuthType Basic   #定義認證類型
    AuthName "PLZ inout you user info" #定義認證提示信息
    AuthUserFile /etc/httpd/.passwd  #定義認證文件
    Require valid-user  
    #定義可訪問用戶,可以爲vbalid-user表示文件中所有用戶,也可使用user USERNAME 定義指定用戶
</Directory>



wKioL1PnQuHQOTCBAAFhyg2-soc564.jpg 

 

4.日誌功能

#錯誤日誌定義
ErrorLog “path/to/error/logfile”
#定義錯誤日誌級別
LogLevel {debug|info|notice|warn|error|crit|alert|emerg}
#自定義日誌
CustomLog “/path/to/customlog/file” 日誌格式名
#自定義日誌格式定義
LogFormat “格式”  格式名
#格式中常用的宏
#%h:客戶端地址
#%l:遠程登錄名
#%u:遠程認證名稱,沒有認證爲"-"
#%t:收到請求時間
#%r:請求報文的起始行
#%>s:響應狀態嗎
#%b:響應報文長度bits
#%{HEADER_NAME}i:記錄指定首部對應的值

5.MPM參數配置

<IfModule prefork.c> #如果啓用prefork模塊,下列參數生效
StartServers       8#表示啓動服務器時啓動多少線程
MinSpareServers    5 #定義最小空閒進程數
MaxSpareServers   20 #定義最大空閒進程數
ServerLimit      256 #最大進程數
MaxClients       256 #最大客戶端個數
MaxRequestsPerChild  4000 #每個進程允許在其生命週期處理多少請求
</IfModule>
#==========================
<IfModule worker.c>
StartServers         4 #表示啓動服務器時啓動多少線程
MaxClients         300 #最多客戶端個數
MinSpareThreads     25 #最小空閒進程數
MaxSpareThreads     75 #最大空閒進程數
ThreadsPerChild     25 #每個進程生成多少線程
MaxRequestsPerChild  0 #每個進程允許在其生命收起處理多少請求
</IfModule>

6.虛擬主機

         (篇幅較長,請看我的另外一篇博文 點擊查看  )

7.Apache內嵌處理器server-status使用

[root@wh1 conf.d]# cat serverstatus.conf
<Location /server-status>
    options none
    SetHandler server-status
    Order allow,deny
    allow from 192.168.1
</Location>

wKiom1PnQcqBaGcOAAFZyTxvVPw458.jpg 

8.配置實用https協議實現安全連接

#安裝mod_ssl
[root@wh1 conf.d]# yum install mod_ssl
#爲httpd生成私鑰並生成證書
mkdir /etc/httpd/ssl;cd httpd/ssl
(umask 077;openssl genrsa -out /etc/httpd//httpd.key 1024)
openssl req -new -key httpd.key -out httpd.csr
#在CA證書服務器上爲其簽署證書並傳回給
openssl ca -in httpd.csr -out httpd.crt -days 1000
#配置ssl認證
SSLCertificateFile /etc/httpd/ssl/httpd.crt #指定證書位置
SSLCertificateKeyFile /etc/httpd/ssl/httpd.key #指定私鑰位置

wKiom1PnQcvQ-hngAACkR-OMtrw924.jpg 

9.httpd自帶工具使用

httpd:apache服務器程序
    -t:測試
    -l:列出靜態模塊
    -D DUMP_MODULES:列出DSO模塊
    -M,相當於-t -DDUMP_MODUKLES
    -D DUMP_VHOSTS:列出所有虛擬主機
htpasswd:爲基於文件basic認證創建更新用戶賬號文件和認證文件
    -c:創建文件,第一次添加用戶使用
    -m:用MD5加密
    -d:刪除用戶
 
apachectl:httpd服務控制工具
ab:apache基準性能測試工具
    ab [options] URL
        -c #:併發數
        -n #:總請求數
        -n的值一定大於-c的值
        -c #:指定併發數
        -n #:指定總的請求數



10.通過源碼安裝httpd-2.4

                (篇幅較長,請看我的另外一篇博文 點擊查看  )








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