linux服務基礎(二)之httpd基礎配置
一、安裝httpd服務
CentOS6 默認安裝httpd2.2版本
CentOS7 默認安裝httpd2.4版本
# yum install httpd
二、安裝後相關文件說明
配置文件:
/etc/httpd/conf/httpd.conf /etc/httpd/conf.d/*.conf
服務腳本:
/etc/rc.d/init.d/httpd
腳本的配置文件:/etc/sysconfig/httpd
主程序文件:
/usr/sbin/httpd /usr/sbin/httpd.event /usr/sbin/httpd.worker
日誌文件目錄:
/var/log/httpd
access_log: 訪問日誌
error_log:錯誤日誌
站點文檔目錄:
/var/www/html
模塊文件路徑:
/usr/lib64/httpd/modules
三、常用配置
打開主配置文件:
vim /etc/httpd/conf/httpd.conf
1. 修改監聽的IP和Port
Listen [IP:]PORT
省略ip表示監聽所有ip,listen可重復出現多次
實例: # Listen 80 # Listen 192.168.1.103:8080
2. 持久連接
Persistent Connection: 每個連接獲取資源完成後不會斷開連接,而是繼續等待其他的請求完成
如何斷開?
數量限制: 默認100
時間限制: 可配置
缺陷: 對並發訪問量較大的服務器,持久連接功能會使有些連接得不到響應
折中解決辦法: 使用較短的持久連接時間
Note: httpd-2.4版本支持毫秒級持久時間
開啟或關閉持久連接:
KeepAlive On|Off //打開或關閉持久連接 MaxKeepAliveRequests # //最大持久連接數 KeepAliveTimeout # //持久連接超時時長
實例: # telnet 102.168.1.103 80 # GET / HTTP/1.1 # Host: 192.168.1.103
3. MPM
Multipath Process Module: 多道處理模塊
有三種模型:
prefork: 多進程模型,每個進程響應一個請求
一個主進程:負責生成n個子進程,子進程也稱為工作進程,每個子進程處理一個用戶請求,即便沒有用戶請求,也會預先生成多個空閑進程,隨時等待請求到達;最大不超過1024個
worker: 多線程模型(多進程生成,一個進程生成多個線程),每個線程響應一個請求
event: 事件驅動模型,一個線程響應多個請求
查看靜態編譯的模塊 # httpd -l
查看靜態編譯及動態裝載的模塊
# httpd -M
更換使用的httpd程序 # vim /etc/sysconfig/httpd # HTTPD=/usr/sbin/httpd.worker
重啟服務生效
prefork的配置:
<IfModule prefork.c> StartServers 8 # 服務啟動時啟動多少個進程 MinSpareServers 5 # 最少空閑進程數 MaxSpareServers 20 # 最大空閑進程數 ServerLimit 256 # 為maxclients所準備的在其服務器生命周期內所允許的最大值,進程數量最大值 MaxClients 256 # 服務器端最多允許啟動多少個進程,也即是服務器端最多允許多少個客戶端同時請求資源 MaxRequestsPerChild 4000 # 一個進程最多響應多少次的請求 </IfModule>
worker的配置:
<IfModule worker.c> StartServers 4 # 服務器啟動時啟動多少個進程 MaxClients 300 # 服務器端啟動的最大線程數 MinSpareThreads 25 # 最少空閑線程數 MaxSpareThreads 75 # 最大空閑線程數 ThreadsPerChild 25 # 每個進程所能夠啟動的線程數 MaxRequestsPerChild 0 # 每個線程所能夠響應的最大請求數量,0表示不受限制 </IfModule>
4. DSO 動態共享對象,支持模塊動態裝卸載
LoadModule <mod_name> <mod_path>
/etc/httpd/modules --> /usr/lib64/httpd/modules
5. 定義‘Main‘ server的文檔頁面路徑
DocumentRoot指向的路徑為URL路徑的起始位置
DocumentRoot "/var/www/html"
實例: 主配置文件中修改: # DocumentRoot "/www/htdocs" # Directory "/www/htdocs">
6. 站點訪問控制
可基於兩種類型的路徑指明對那些資源進行訪問控制
文件系統路徑:
<Directory ""></Directory> 對目錄中所有文件控制
<File ""></File> 對單個文件控制
<FileMatch ""></FileMatch> 對模式匹配的文件進行控制,最好不用
URL路徑:
<Location ""></Location>
訪問控制機制:
基於來源地址
基於賬號
7. Directory中基於來源地址實現訪問控制
(1)Options
所有可用特性:Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
Indexes: 索引
實例:
默認是由indexes配置,如果在documentroot目錄下沒有index.html或者index.html.var
訪問時會列出文件列表
不啟用Indexes: -Indexes
FollowSymlinks: 允許跟蹤符號鏈接文件
實例:
ln -sv /etc/issue /www/htdocs/issue.html
瀏覽器訪問: 192.168.1.103/issue.html可以訪問
如果要去掉FollowSymlinks: 前面加個-號
options裏面什麽選項都不要可以設置為none
(2)基於來源地址的訪問控制機制
Order: 檢查次序
Order allow,deny: 相當於建立白名單
Order deny,allow: 相當於建立黑名單
Allow from
Deny from
來源地址:
IP
NetAddr
192.168.1 192.168.1.0 192.168.1.0/24 192.168.1.0/255.255.255.0
實例: Order allow,deny Deny from 192.168.1.110 Allow from 192.168.1
測試: elinks -dump http://192.168.1.102 //當前主機訪問自己是可以的
8. 定義默認主頁面
DirectoryIndex index.html index.html.var
9. 日誌設定
linux服務基礎(二)之httpd基礎配置