HTTPD常用配置
---------------------------------------------------------------------------------------------------------------------------------------------
一、http服務器
2、20世紀90年代初,美國國家超級計算機應用中心NCSA開發
1995年開源社區發佈apache(a patchy server)
ASF: apache software foundation
DSO: Dynamic Shared Object 動態加/卸載
MPM:multi-processing module多路處理模塊
1、prefork:多進程I/O模型,每個進程響應一個請求,默認模型,併發連接數達到10000,性能將明顯下降
多個子進程:工作work進程,每個子進程處理一個請求;系統初始時,預先生成多個空閒進程,等待請求,最大不超過1024個
2、worker:複用的多進程I/O模型,多進程多線程,IIS使用此模型,如果一個子進程的某個線程有問題,那麼該子進程的其它線程會被問題線程影響
一個主進程:生成m個子進程,每個子進程負責生個n個線程,每個線程響應一個請求,併發響應請求:m*n
一個主進程:生成m個子進程,每個進程直接響應n個請求,併發響應請求:m*n,有專門的線程來管理這些keep-alive類型的線程,當有真實請求時,將請求傳遞給服務線程,執行完畢後,又允許釋放。這樣增強了高併發場景下的請求處理能力
2、CGI:Common Gateway Interface,通用網關接口
3、反向代理:調度器,離服務器更近,根據實際情況把用戶請求調度到真正提供後臺服務的服務器
附:不支持正向代理。正向代理:幫助客戶端訪問遠程主機,離客戶機更近,主機想要訪問某視頻網站觀看視頻,區域內服務器收到用戶機請求後去目標網站訪問視頻,並存儲到緩存內,將緩存內的視頻返回給用戶,如果有其他用戶也查看同樣的網站視頻,訪問到的數據也將是區域內服務器的緩存,這樣不僅節約了帶寬,同時也提高了用戶網絡傳輸速度
該選項只是讓apache知道自己的域名叫這個,讓其他遠程主機知道該域名還是需要DNS,此處搞個小
httpd-manual,yum install httpd-manual後加載服務,瀏覽器地址輸入192.168.239.60/manual出現幫助說明
centos7工作模式/etc/sysconfig/httpd已無這些內容,修改某模式選項參數時直接在自建的/etc/httpd/conf.d/*.conf裏寫入即可,比如說
因此新建/etc/httpd/conf.d/test.conf,寫入ServerTokens Prod,保存退出後重新加載生效
注:如果在/etc/httpd/conf.d/*.conf添加listen 8080,而不修改主配置文件,此時服務重啓httpd將監聽80端口和8080端口;
如果在主配置文件監聽的是內部ip,listen 192.168.1.1:80,意味着ip綁定端口,只能ping 通192.168.1.1的內部ip登錄,外部其它ip無法通過80端口登錄
此實驗僅適用於本主機,如果修改了其他主機hosts文件,也可以通過apache域名解析爲ip
/etc/httpd/conf.modules.d/00-mpm.conf
模塊目錄:/etc/httpd/conf.modules.d/00-base.conf,修改後需要重啓httpd服務
apache默認路徑:/var/www/html/index.html
這是主文件配置,一般不建議修改主文件配置,建議在/etc/httpd/conf.d/目錄下自己新建個*.conf文件,在裏面寫入內容進行修改。修改前可以輸入grev -v "^[ ]*#" /etc/httpd/conf/httpd.conf,將過濾掉帶註釋行的說明內容,像這樣
如果再修改哪一項將該項拷貝出,複製到/etc/httpd/conf.d/*.conf進行修改重啓即可
綜上所述,找到配置文件中的/var/www/html,複製到自建的配置文件
/etc/httpd/conf.d/welcome.html:這是httpd找不到主頁時顯示的Test123頁面,將它改名後,頁面爲
修改配置使主頁面不存在時可以查看網站下的目錄索引:(設置權限的目錄只出現在允許的主機上)
一般網站不開啓此選項,不過類似阿里雲的epel源網站會開啓這選項
與訪問控制相關的哪些指令可以放在指定目錄下的.htaccess文件中,覆蓋之前的配置指令
debug, info, notice, warn,error, crit, alert, emerg,crit, alert, emerg
定義日誌格式:LogFormatformat strings
LogFormat"%h %l %u %{%Y-%m-%d %H:%M:%S}t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" testlog
CustomLoglogs/access_logtestlog
參考幫助:http://httpd.apache.org/docs/2.2/mod/mod_log_config.html#formats
%l 遠程用戶,啓用mod_ident纔有效,通常爲減號“-”
%u 驗證(basic,digest)遠程用戶,非登錄訪問時,爲一個減號“-”
%r First line of request,即表示請求報文的首行;記錄了此次請求的“方法”,“URL”以及協議版本
%b 響應報文的大小,單位是字節;不包括響應報文http首部
%{Referer}i請求報文中首部“referer”的值;即從哪個頁面中的超鏈接跳轉至當前頁面的
%{User-Agent}i請求報文中首部“User-Agent”的值;即發出請求的應用程
AddDefaultCharsetUTF-8 此爲默認值,自建的配置文件直接添加此項
如果只需要某個.htpasswd中某個用戶訪問,在require後寫該用戶名字即可,其他用戶將無法訪問
htpasswd -c /data/.htpasswd audi,第一次創建必須加-c
htpasswd /data/.htpasswd bmw,後續創建不能加-c,否則會覆蓋
htpasswd /data/.htpasswd cadillac
-c 自動創建文件,僅應該在文件不存在時使用
-p 明文密碼
-d CRYPT格式加密,默認
-m md5格式加密
-s sha格式加密
-D 刪除指定用戶
16、基於組賬號進行認證
(1)自建的配置文件寫入
(1)vim /etc/httpd/conf/httpd.conf
<IfModulemod_userdir.c> ---->此項取消註釋
UserDir public_html ---->指定共享目錄的名稱
su -chenux;mkdir ~/public_html ---->與上面的UserDir後面的目錄對應
19、ServerSignatureOn | Off | EMail(默認是off)
當客戶請求的網頁並不存在時,服務器將產生錯誤文檔,缺省情況下由於打開了ServerSignature選項,錯誤文檔的最後一行將包含服務器的名字、Apache的版本等信息
設置爲Email,將顯示ServerAdmin的Email提示
基於LoadModulestatus_modulemodules/mod_status.so模塊