httpd-2.2的基礎配置
/etc/httpd:ServerRoot conf/httpd.conf、conf.d/*.conf:配置文件 logs:日誌文件 modules:模塊文件
主配置文件:/etc/httpd/conf/httpd.conf directive value directive:不區分字符大小寫;例如:ServerRoot; value:除了文件路徑這外,大多數不區分字符大小寫;
### Section 1: Global Environment 全局配置段 ### Section 2: 'Main' server configuration 主服務配置選項 ### Section 3: Virtual Hosts 虛擬主機配置段 一般而言只用一個主服務配置或多個虛擬主機 (互斥選項 主服務和虛擬服務不能同時生效)
修改後生效: Reload service httpd reload (CentOS 6) restart:通常僅修改了監聽的地址和端口; *********************************** ]# httpd -t 語法檢查 *********************************** 1、修改監聽的地址端口; Listen [IP:]PORT (1) 可定義多次; Listen 80 Listen 8080 (2) 省略IP,表示0.0.0.0; 本機配置的所有地址
2、持久連接 persistent connection:tcp連接建立後,資源獲取完成不會斷開連接,而是繼續等待請求其它資源; 如何斷開? 數量限制 時間限制
相關指令: KeepAlive On|Off 是否開啓持久鏈接功能 默認off MaxKeepAliveRequests 100 一次鏈接最多能請求多少個資源 KeepAliveTimeout 15 一次聯建最多存活多少秒
請求測試: ]$ telnet SERVER_IP PORT root無法用terlnet GET /test1.html HTTP/1.1 請求資源方法 資源url 及指定協議版本 http Host: SERVER_IP 主機ip地址 相應報文首部: HTTP/1.1 200 OK 相應碼 200 Date: Tue, 14 Jun 2016 06:04:36 GMT 時間 Server: Apache/2.2.15 (CentOS) 服務器端程序 Last-Modified: Tue, 14 Jun 2016 03:34:43 GMT 標記請求資源最後修改的時間 ETag: "60102-10-53534af955806" Accept-Ranges: bytes Content-Length: 16 響應報文長度 Connection: close Content-Type: text/html; charset=UTF-8 資源類型和字符集
test1.html page (相應body) Connection closed by foreign host. (非持久鏈接 相應後既關閉連接)
3、MPM 定義httpd進程基於哪種某型相應用戶請求 multipath processing module:多路處理模塊;
httpd-2.2的MPM機制不支持DSO機制,event爲測試; httpd:prefork httpd.worker: worker httpd.event: event 修改啓動的模塊: restart生效 /etc/sysconfig/httpd HTTPD=/usr/sbin/httpd|httpd.worker|httpd.event
查看httpd程序的模塊列表: 查看靜態編譯的模塊: httpd -l 查看編譯的所有模塊: httpd -M ***************************************** 當使用profork模型時,主進程會預先生成幾個空閒的子進程等待相應用戶請求 MPM配置: prefork的配置 <IfModule prefork.c> StartServers 8 預先生成的子進程數量 MinSpareServers 5 最小空閒子進程 MaxSpareServers 20 最大空閒子進程 ServerLimit 256 相應用戶請求的最大服務器進程數量 MaxClients 256 最大客戶端數量 MaxRequestsPerChild 4000 </IfModule>
worker的配置: 三級結構 <IfModule worker.c> StartServers 4 啓動子進程數量 MaxClients 300 最大併發連接數(線程) MinSpareThreads 25 最少空閒線程數 MaxSpareThreads 75 最大空閒線程數 ThreadsPerChild 25 每一個子進程最大啓動多少個線程 MaxRequestsPerChild 0每一個字進程最多能接受多少個請求(基於線程模型無法控制) </IfModule> 80, 500ms, 256 512*86400/80=55W PV 每個相應在500ms內完成 最大併發爲256 一秒鐘能相應512個 平均每天86400 除以每個頁面的資源數量 80 得每天能相應的頁面數量 (不代表高峯數據且不考慮帶寬 實際意義不大) Page View UV: User View 有效用戶 ***************************************** 4、DSO 動態模塊裝載 LoadModule指令 LoadModule Mod_Name modules/Module_File.so
相對路徑,是相對於ServerRoot指令所定義的路徑而言;
5、 ‘Main' Server 主web服務配置段 通常來講,這兩個配置段沒有的指令會從主配置段繼承配置,主服務器配置和虛擬服務器配置不可同時生效: (1)'Main'Server配置段(在單臺服務器上存在單個站點提供服務) 定義服務器和主機必不可少的: ServerName FQDN:PORT 主服務器在主配置段裏定義也可以(試驗中在本機定義後,還要編輯/etc/hosts添加ip地址和FQDN對應關係才能在本機瀏覽器打開) DocumentRoot (路徑映射)
6.站點資源訪問控制 (可以在主配置文件或虛擬主機中生效) (1)基於文件系統 (2.2默認都可以訪問 2.4默認不能訪問) <Directory"/PATH/TO/SOME_DIR"> (針對文件夾做操作,配置內容只對該文件夾有效) ... </Directory> <File""> ...</File> (針對文件,只對容器內生效) <FileMatch "PATTERN"> ...</FileMatch> (針對被正則匹配的文件) (2)基於url路徑 <Location "/PATH/TO/SOME_URL">...</Location>(對url訪問控制) <LocationMatch "PATTERN">...</LocationMatch> (url的正則表達式) 目錄中的常用選項:
[1] Options:用於定義資源的展示方式;後跟以空白字符分隔的“選項”列表; Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews None All Indexes:允許索引; FollowSymLinks:允許跟蹤符號鏈接; (允許指定的文件或路徑是以軟連接的形式存在,風險很大) SymLinksifOwnerMatch (原理同上,但文件或目錄屬主(運行httpd的用戶)必須是符合要求,相比followsyslinks風險較小) ExecCGI:允許執行CGI腳本; (早期CGI可以有超級superID權限,除非網頁用到此功能,否則儘量不開啓) Includes:包含 略 如果一個站點沒有主頁又沒有允許Indexes則顯示403,但如果有其他url還是可以訪問的.
[2] AllowOverride [none|all|Fileinfo|authconfig|limit](用來控制哪些指令可以放在.htaccess中) httpd允許在網頁文檔的各目錄下使用.htaccess文件實現單目錄資源的訪問控制;表示哪此指令可以存放於.htaccess文件中; 比如/data/web/目錄下有.htaccess則編輯此文件則可實現訪問控制,如果使用服務器性能急劇下降(必須搜索到此文件.當前目錄沒有則搜索上級目錄)
[3]order和llow/deny from (控制誰能在當前服務器獲得資源) 基於IP地址的訪問控制; order 用於定義allow和deny的生效次序; allow from all/IP/NETWORK/FQDN deny from all/IP/NETWORK/FQDN 來源地址格式: IP NetAddr:格式; 172.16; 172.16.0.0; 172.16.0.0/16; 172.16.0.0/255.255.0.0; FQDN DAMAIN order * , *(誰在後誰是默認法則) order deny,allow;deny是默認法則,沒有說明allow的都是不允許的(安全) order allow, deny (如果沒有deny的,都是allow(默認))-->>來源請求遵循最佳匹配法則機制;
deny和allow的次序是沒有區別的(非order第一行),最優匹配法則:當一個主機訪問時,看哪一條能最小匹配,哪一個就優先生效(172.16.100.67最小匹配deny,所以deny生效)
7.定義站點主頁面 DirectoryIndex index.html index.html.var 可以多個值 自作而有搜索,如果沒有查看是否options indexes返回索引列表,如果沒有則返回403 8.定義路徑別名: Alias /URL/ "/PATH/TO/SOME_DIR/" (URL只是個定義.並不一定非要是目錄) 例: DocumentRoot "/data/web" 當訪問http://www.zxtest.com/images/logo.jpg <-- /data/web/images/logo.jpg alias /images “/webdata/pictures/” http://www.zxtest.com/images/logo.jpg <-- /webdata/pictures/logo.jpg 9、日誌設定
錯誤日誌: ErrorLog logs/error_log 相對於/etc/logs (文件爲超級連接,真正位置看超級連接的位置) LogLevel warn 日誌等級
訪問日誌: LogFormat:定義日誌信息格式; CustomLog:指明日誌文件路徑及日誌格式;
格式: %h Remote host 遠程主機 %l Remote logname (from identd, if supplied). 遠程登錄名 %u Remote user (from auth; may be bogus if return status (%s) is 401) 用戶名 %t Time the request was received (standard english format) 收到請求的時間 %r First line of request 請求報文的首行 %s Status. For requests that got internally redirected, this is the status of the *original* request --- %>s for the last. 相應狀態碼? %b Size of response in bytes, excluding HTTP headers. 主體部分大小(不包含首部) %{Foobar}i The contents of Foobar: header line(s) in the request sent to the server.
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined(日誌名稱) 特殊顏色爲取其某個報文首部的指定字段的值的 |
web服務_apache配置(2)v1.0
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.