HTTPD常用配置

                                        HTTPD常用配置

---------------------------------------------------------------------------------------------------------------------------------------------

一、http服務器

1、http服務器程序

httpdapache

nginx

lighttpd

2、20世紀90年代初,美國國家超級計算機應用中心NCSA開發

1995年開源社區發佈apache(a patchy server)

ASF: apache software foundation

FSF:Free Software Foundation

3、特性:

高度模塊化:core + modules

DSO: Dynamic Shared Object 動態加/卸載

MPM:multi-processing module多路處理模塊

二、MPM工作模式

1、prefork:多進程I/O模型,每個進程響應一個請求,默認模型,併發連接數達到10000,性能將明顯下降

一個主進程:生成和回收n個子進程,創建套接字,不響應請求

多個子進程:工作work進程,每個子進程處理一個請求;系統初始時,預先生成多個空閒進程,等待請求,最大不超過1024個

2、worker:複用的多進程I/O模型,多進程多線程,IIS使用此模型,如果一個子進程的某個線程有問題,那麼該子進程的其它線程會被問題線程影響

一個主進程:生成m個子進程,每個子進程負責生個n個線程,每個線程響應一個請求,併發響應請求:m*n

3、event:事件驅動模型(worker模型的變種)

一個主進程:生成m個子進程,每個進程直接響應n個請求,併發響應請求:m*n,有專門的線程來管理這些keep-alive類型的線程,當有真實請求時,將請求傳遞給服務線程,執行完畢後,又允許釋放。這樣增強了高併發場景下的請求處理能力

4、模型

prefork

image.png

worker,多線程

image.png

event

image.png

 

三、httpd功能

1、虛擬主機:一個物理服務器搭建多個網站

IP、Port、FQDN

2、CGI:Common Gateway Interface,通用網關接口

3、反向代理:調度器,離服務器更近,根據實際情況把用戶請求調度到真正提供後臺服務的服務器

附:不支持正向代理。正向代理:幫助客戶端訪問遠程主機,離客戶機更近,主機想要訪問某視頻網站觀看視頻,區域內服務器收到用戶機請求後去目標網站訪問視頻,並存儲到緩存內,將緩存內的視頻返回給用戶,如果有其他用戶也查看同樣的網站視頻,訪問到的數據也將是區域內服務器的緩存,這樣不僅節約了帶寬,同時也提高了用戶網絡傳輸速度

4、負載均衡

5、路徑別名

6、豐富的用戶認證機制

basic

digest

7、支持第三方模塊

四、httpd配置文件

1、配置文件:

/etc/httpd/conf/httpd.conf

/etc/httpd/conf.d/*.conf

2、檢查配置語法:

httpd -t

service httpdconfigtest

3、搜索ServerName

image.png

該選項只是讓apache知道自己的域名叫這個,讓其他遠程主機知道該域名還是需要DNS,此處搞個小

4、主程序文件:

/usr/sbin/httpd

/usr/sbin/httpd.worker

/usr/sbin/httpd.event

5、主進程文件:

/etc/httpd/run/httpd.pid

6、日誌文件目錄:

/var/log/httpd

access_log: 訪問日誌

error_log:錯誤日誌

7、幫助文檔包:

httpd-manual,yum install httpd-manual後加載服務,瀏覽器地址輸入192.168.239.60/manual出現幫助說明

五、httpd常見配置

1、centos6工作模式:

image.png

此項修改在/etc/sysconfig/httpd

image.png

centos7工作模式/etc/sysconfig/httpd已無這些內容,修改某模式選項參數時直接在自建的/etc/httpd/conf.d/*.conf裏寫入即可,比如說

image.png

2、配置格式:directive value

directive: 不區分字符大小寫

value: 爲路徑時,是否區分大小寫,取決於文件系統

3、隱藏http報文頭部顯示的服務器版本號:

image.png

因此新建/etc/httpd/conf.d/test.conf,寫入ServerTokens Prod,保存退出後重新加載生效

image.png

或者curl命令,也可以查看

image.png

4、實驗:

修改監聽端口爲8080

image.png

修改服務器名

image.png

修改/etc/hosts文件,添加

image.png

重啓後httpd監聽了8080端口,此時自己主機測試

注:如果在/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端口登錄

image.png

此實驗僅適用於本主機,如果修改了其他主機hosts文件,也可以通過apache域名解析爲ip

5、工作模式更改

/etc/httpd/conf.modules.d/00-mpm.conf

image.png

6、增刪模塊

httpd -M檢查動態加載的模塊

httpd -l 查看靜態加載的模塊,無法刪除,必有

模塊目錄:/etc/httpd/conf.modules.d/00-base.conf,修改後需要重啓httpd服務

image.png

7、更改主頁面存放路徑

apache默認路徑:/var/www/html/index.html

修改:

image.png

這是主文件配置,一般不建議修改主文件配置,建議在/etc/httpd/conf.d/目錄下自己新建個*.conf文件,在裏面寫入內容進行修改。修改前可以輸入grev -v "^[ ]*#" /etc/httpd/conf/httpd.conf,將過濾掉帶註釋行的說明內容,像這樣

image.png

如果再修改哪一項將該項拷貝出,複製到/etc/httpd/conf.d/*.conf進行修改重啓即可

綜上所述,找到配置文件中的/var/www/html,複製到自建的配置文件

image.pngimage.pngimage.pngimage.png

8、定義默認查找的html文件

配置文件中顯示

image.png

自建目錄下添加

image.png

9、站點訪問控制

訪問機制控制有兩種:客戶端來源地址、用戶賬號

2.4配置

image.png

10、主頁面配置

/etc/httpd/conf.d/welcome.html:這是httpd找不到主頁時顯示的Test123頁面,將它改名後,頁面爲

image.png

修改配置使主頁面不存在時可以查看網站下的目錄索引:(設置權限的目錄只出現在允許的主機上

image.png

一般網站不開啓此選項,不過類似阿里雲的epel源網站會開啓這選項

輸入此項,軟鏈接也一併顯示

image.png

11、AllowOverride

與訪問控制相關的哪些指令可以放在指定目錄下的.htaccess文件中,覆蓋之前的配置指令

用法:

image.png

12、日誌設定

直接訪問/var/log/httpd

日誌類型:訪問日誌、錯誤日誌

(1)錯誤日誌:

ErrorLoglogs/error_log

LogLevelwarn

LogLevel可選值:

debug, info, notice, warn,error, crit, alert, emerg,crit, alert, emerg

(2)訪問日誌

定義日誌格式: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

%h 客戶端IP地址

%l 遠程用戶,啓用mod_ident纔有效,通常爲減號“-”

%u 驗證(basic,digest)遠程用戶,非登錄訪問時,爲一個減號“-”

%t 服務器收到請求時的時間

%r First line of request,即表示請求報文的首行;記錄了此次請求的“方法”,“URL”以及協議版本

%>s 響應狀態碼

%b 響應報文的大小,單位是字節;不包括響應報文http首部

%{Referer}i請求報文中首部“referer”的值;即從哪個頁面中的超鏈接跳轉至當前頁面的

%{User-Agent}i請求報文中首部“User-Agent”的值;即發出請求的應用程

image.png

修改日誌格式:

查找到位置

image.png

複製進自建的配置文件,並修改

image.png

13、設定默認字符集

AddDefaultCharsetUTF-8 此爲默認值,自建的配置文件直接添加此項

14、定義路徑別名

image.png

開啓options indexes功能後測試

image.png

15、基於用戶的訪問控制

認證方式:basic銘文驗證、digest摘要驗證

(1)添加配置信息

image.png

如果只需要某個.htpasswd中某個用戶訪問,在require後寫該用戶名字即可,其他用戶將無法訪問

(2)在/data/下創建.htpasswd

htpasswd -c /data/.htpasswd audi,第一次創建必須加-c

htpasswd /data/.htpasswd bmw,後續創建不能加-c,否則會覆蓋

htpasswd /data/.htpasswd cadillac

image.png

(3)重啓服務驗證

image.png

附:htpasswd其它選項

htpasswd /DIR/.htpasswd USER

-c 自動創建文件,僅應該在文件不存在時使用

-p 明文密碼

-d CRYPT格式加密,默認

-m md5格式加密

-s  sha格式加密

-D 刪除指定用戶

16、基於組賬號進行認證

    (1)自建的配置文件寫入

image.png

    (2)建立用戶文件和組文件

image.png

    組的建立並分配用戶

image.png

    (3)測試g1組

image.png

    登錄成功

image.png

    測試g2組

image.png

無效提示重新登錄

image.png

17、遠程客戶端和用戶驗證的控制

Satisfy ALL|Any

ALL 客戶機IP和用戶驗證都需要通過纔可以

Any客戶機IP和用戶驗證,有一個滿足即可

示例

Require valid-user

Order allow,deny

Allow from 192.168.1

Satisfy Any

18、實現用戶家目錄的http共享

基於模塊mod_userdir.so實現

(1)vim /etc/httpd/conf/httpd.conf

<IfModulemod_userdir.c> ---->此項取消註釋

#UserDirdisabled   ---->此項添加註釋

UserDir public_html   ---->指定共享目錄的名稱

</IfModule>

(2)準備目錄

su -chenux;mkdir ~/public_html  ---->與上面的UserDir後面的目錄對應

setfacl -m u:apache:x ~chenux

19、ServerSignatureOn | Off | EMail(默認是off)

當客戶請求的網頁並不存在時,服務器將產生錯誤文檔,缺省情況下由於打開了ServerSignature選項,錯誤文檔的最後一行將包含服務器的名字、Apache的版本等信息

如果不對外顯示這些信息,就可以將這個參數設置爲Off

設置爲Email,將顯示ServerAdmin的Email提示

20、status頁面,顯示狀態信息

基於LoadModulestatus_modulemodules/mod_status.so模塊

image.png

Require處依然可以填寫只允許哪個ip查看狀態

寫好後瀏覽器地址欄輸入192.168.239.70/status

image.png

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