apache配置文件httpd.conf----小白福利
生活随笔
收集整理的這篇文章主要介紹了
apache配置文件httpd.conf----小白福利
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、安裝apache
二、配置文件/etc/httpd/conf/httpd.conf
配置1:配置prefork模塊功能
<IfModule prefork.c> <<< 判斷是否在使用prefork模塊,如果在使用,那么下面的參數生效StartServers 8 <<< 啟動httpd的時候,啟動幾個子進程MinSpareServers 5 <<< 最少空閑子進程數MaxSpareServers 20 <<< 最多空閑子進程數ServerLimit 256 <<< 最多活動子進程數MaxClients 256 <<< 最大并發數MaxRequestsPerChild 4000 <<< 設置當子進程處理了多少個請求后,就立刻回收該子進程 </IfModule>配置2:配置長連接功能
KeepAlive Off|On MaxKeepAliveRequests 100 <<< 長鏈接處理請求的最大值,超過則斷開keepalive KeepAliveTimeout 15 <<< keepAlive的斷開時間配置3:配置httpd監聽的套接字
Listen 80 <<< 監聽所有IP的80端口 Listen 10.220.5.190:80 <<< 監聽10.220.5.190的80端口配置4:配置worker模塊功能
<IfModule worker.c> StartServers 4 <<< 啟動4個子進程 MaxClients 300 <<< 最大并發數 MinSpareThreads 25 <<< 最少空閑線程數 MaxSpareThreads 75 <<< 最多空閑線程數 ThreadsPerChild 25 <<< 每個子進程可以創建多個線程 MaxRequestsPerChild 0 <<< 設置當子進程處理了多少個請求后,就立刻回收該子進程(0永不回收) </IfModule>配置5:配置DSO
模塊裝載:LoadModule ModuleName /path/to/module補充: httpd -M:顯示所有模塊(包括DSO 和 非DSO模塊) httpd -l:顯示僅僅是可以使用的非DSO模塊配置6:配置網站根目錄
DocumentRoot 默認:/var/www/html說明:訪問網站的時候,比如10.220.5.180 的是,默認是去網站根目錄下找資源,也就是/var/www/html找資源現在資源/var/www/html下的jd目錄中,因此找資源的方式,就需要在ip后指定資源所在的目錄配置7:配置默認主頁
當客戶端沒有指定要請求哪個文件,那么就自動發送給客戶端一個默認文件,這就是默認首頁 DirectoryIndex配置8:訪問控制
<Directory /path/to/control> 控制的范圍:整個網站做控制網站的某個頁面、目錄做控制 </Directory>optionsFollowSymLinks:允許通過符號連接的方式來訪問網站根目錄下的資源的文件Indexes:如果用戶沒有指定所請求的文件,而且系統中也找不到默認首頁,則將全部的文件列表返回給用戶AllowOverride指定各個目錄下的.htaccess中的控制指令是否可以覆蓋掉主配置文件中的控制指令None:忽略各個目錄下的.htaccessAll:用各個目錄下的.htaccess中的配置覆蓋掉主配置文件中的控制指令AuthConfig:實現基于用戶名/密碼的訪問控制對用戶的訪問控制 1. 基于IP的訪問控制 2. 基于用戶和密碼的訪問控制配置9:基于IP的訪問控制
Order:指定次序Order Allow DenyOrder Deny Allow【后面的那個是默認值】Allow from 指定允許訪問的主機列表 Deny from 指定禁止訪問的主機列表 【多條規則的組合結果】指定主機列表192.168.5.123192.168.5.0/24192.168.5例子Order Allow DenyAllow from 192.168.5.123 192.168.5.124 Deny from 192.168.5.123Order Allow Deny只匹配到allow,按allow處理只匹配到deny,按deny處理如果兩個都匹配到了,則按照默認規則處理如果兩個都沒有匹配到了,則按照默認規則處理配置10:用戶目錄
每個系統用戶的家目錄其實都可以做成一個網站的根目錄,訪問該用戶家目錄下的網站的方式 http://ip:port/~userName配置11:日志
訪問日志:定義:日志格式:LogFormat 格式信息 格式名稱%h:遠程主機的IP地址%t:請求時間%l:客戶端登錄網站所用的用戶名,客戶端沒有登錄,顯示 -%u:遠程用于做身份認證的用戶名,如果沒有做認證,顯示 -%r:請求報文的第一行(請求方法,請求的uri,請求的版本號)%s:服務器端所返回的狀態值\"%{Referer}i\":顯示該用戶的請求是否為跳轉過來的,如果不是跳轉來的,顯示 - \"%{User-Agent}i\":客戶端的瀏覽器類型日志位置:CustomLog 保存位置 格式名稱配置12:設置字符集
AddDefaultCharset UTF-8配置13:配置路徑別名
Alias /error/ "/var/www/error/"注意:結尾必須相同配置14:配置CGI
CGI:Common Gateway Interface,是一種協議 作用:運行讓用戶請求一個腳本,然后將腳本的執行結果返回給客戶端,這里就用到了CGI協議,CGI協議就是讓apache啟動一個解釋器來執行腳本程序,然后將執行的結果發送給客戶端腳本要想使用CGI執行,并給客戶端返回結果,腳本的輸出格式是固定 第一行:Content-Type: text/html 第二行:空白行 第三行:這行開始是腳本的正文a.sh#!/bin/bashecho "Content-Type: text/html"echo ""echo "my name is :`hostname`"echo "date is: `date`"CGI找腳本的位置ScriptsAlias /cgi-bin/ "/var/www/cgi-bin/"配置15:配置虛擬主機功能
案例:http基于域名的虛擬主機的實現
配置16:狀態頁面
通過一個頁面來顯示服務器的狀態 功能依賴一個DSO模塊:status_module<Location /server-status> <<< 指定如何訪問這個狀態頁面SetHandler server-status <<< 指定做狀態統計的處理器Order deny,allowDeny from all <<< 拒絕所有用戶Allow from x.x.x.x <<< 指定可以訪問這個頁面的客戶端列表 </Location>說明一個點就表示一個可以啟動,但是尚未啟動的進程一個_ 表示一個等待使用的進程如果一個進程被使用,位置上就會出現一個字母配置17:頁面壓縮
功能依賴一個DSO模塊:deflate_module 作用:減少傳輸的數據量,但是帶來額外的系統開銷SetOutPutFilter DEFLATE <<< 啟動頁面壓縮功能 <IfModule mod_deflate.c>AddOutPutFilterByType DEFLATE text/html <<< 指定對什么類型的文件做壓縮AddOutPutFilterByType DEFLATE text/imageDeflateCompressionLevel 9 <<< 指定壓縮比 </IfModule>配置18:基于用戶的訪問控制
范圍整個網站某一個或者多個目錄 虛擬用戶用戶控制相關模塊 1:auth:指定認證方式basic:基本認證,也就是用戶名+密碼(明文)digest:基于摘要方式做認證(hash) 2. authn:指定認證的提供者(用于做認證的信息的保存位置) 3. auzhz:指定授權機制------做運維之前很矯情的小年輕-----
總結
以上是生活随笔為你收集整理的apache配置文件httpd.conf----小白福利的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一次完整的HTTP事务过程--超详细!
- 下一篇: http基于用户的访问控制--实战