亚洲熟女综合色一区二区三区,亚洲精品中文字幕无码蜜桃,亚洲va欧美va日韩va成人网,亚洲av无码国产一区二区三区,亚洲精品无码久久久久久久

Linux基礎(chǔ)教程之HTTP相關(guān)配置解讀

一次完整的HTTP請(qǐng)求處理過程:
1、建立連接:接收或拒絕鏈接請(qǐng)求
2、接受請(qǐng)求:接收客戶端請(qǐng)求報(bào)文中對(duì)某資源的一次請(qǐng)求的過程
Web訪問響應(yīng)模型(Web I/O)
單進(jìn)程I/O模型:啟動(dòng)一個(gè)進(jìn)程處理用戶請(qǐng)求,而且一次只處理一個(gè),多個(gè)請(qǐng)
求被串行響應(yīng);
多進(jìn)程I/O模型:并行啟動(dòng)多個(gè)進(jìn)程,每個(gè)進(jìn)程響應(yīng)一個(gè)鏈接請(qǐng)求;
復(fù)用I/O結(jié)構(gòu):啟動(dòng)一個(gè)進(jìn)程,同時(shí)響應(yīng)N個(gè)鏈接請(qǐng)求;
實(shí)現(xiàn)方法:多線程模型和事件驅(qū)動(dòng);
多線程模型:一個(gè)進(jìn)程生成N個(gè)線程,每線程響應(yīng)一個(gè)連接請(qǐng)求;
事件驅(qū)動(dòng):一個(gè)進(jìn)程處理N個(gè)請(qǐng)求。
復(fù)用的多進(jìn)程I/O模型:啟動(dòng)M個(gè)進(jìn)程,每個(gè)進(jìn)程響應(yīng)N個(gè)連接請(qǐng)求,同時(shí)接收
M*N個(gè)請(qǐng)求。
?

3、處理請(qǐng)求:

服務(wù)器對(duì)請(qǐng)求報(bào)文進(jìn)行解析,并獲取請(qǐng)求的資源及請(qǐng)求方法

等相關(guān)信息,根據(jù)方法,資源,首部和可選的主體部分對(duì)請(qǐng)求進(jìn)行處理
元數(shù)據(jù):請(qǐng)求報(bào)文首部
<method> <URL> <VERSION>
HEADERS 格式 name:value
<request body>
示例:
Host : www.vfuj.cn 請(qǐng)求的主機(jī)名稱
Server: Apache/2.4.7
HTTP常用請(qǐng)求方式,Method GET、POST、HEAD、PUT、DELETE、

TRACE、OPTIONS

4、訪問資源:
服務(wù)器獲取請(qǐng)求報(bào)文中請(qǐng)求的資源web服務(wù)器,即存放了 web資源的服
務(wù)器,負(fù)責(zé)向請(qǐng)求者提供對(duì)方請(qǐng)求的靜態(tài)資源,或 動(dòng)態(tài)運(yùn)行后生成的資
源 。
資源放置于本地文件系統(tǒng)特定的路徑:
DocRoot –> /var/www/html
/var/www/html/images/logo.jpg
http://www.vfuj.cn/images/logo.jpg
web服務(wù)器資源路徑映射方式:
(a) docroot
(b) alias
(c) 虛擬主機(jī)docroot
(d) 用戶家目錄docroot
?
5、構(gòu)建響應(yīng)報(bào)文:
一旦Web服務(wù)器識(shí)別除了資源,就執(zhí)行請(qǐng)求方法中描述的動(dòng)作,并返回響應(yīng)報(bào)文。響應(yīng)報(bào)文中包含有響應(yīng)狀態(tài)碼、響應(yīng)首部,如果生成了響應(yīng)主體的話,還包括響應(yīng)主體。
1)響應(yīng)實(shí)體:如果事務(wù)處理產(chǎn)生了響應(yīng)主體,就將內(nèi)容放在響應(yīng)報(bào)文中回送過去。響應(yīng)報(bào)文中通常包括: 描述了響應(yīng)主體MIME類型的Content-Type首部描述了響應(yīng)主體長度的Content-Length 實(shí)際報(bào)文的主體內(nèi)容
2)URL重定向:web服務(wù)構(gòu)建的響應(yīng)并非客戶端請(qǐng)求的資源 ,而是資源另外一個(gè)訪問路徑:
永久重定向:http://www.360buy.com
臨時(shí)重定向:http://www.taobao.com
3)MIME類型:
Web服務(wù)器要負(fù)責(zé)確定響應(yīng)主體的MIME類型。有很多配置服務(wù)器的方法可以將MIME類型與資源管理起來 ;
魔法分類:Apache web服務(wù)器可以掃描每個(gè)資源的內(nèi)容,并將其與一個(gè)已知模式表(被稱為魔法文件)進(jìn)行匹配,以決定每個(gè)文件的MIME類型。這樣做可能比較慢,但很方便,尤其是文件沒有標(biāo)準(zhǔn)擴(kuò)展名的時(shí)候;
顯式分類:可以對(duì)Web服務(wù)器進(jìn)行配置,使其不考慮文件的擴(kuò)展名或內(nèi)容,強(qiáng)制特定文件或目錄內(nèi)容擁有某個(gè)MIME類型。
類型協(xié)商: 有些Web服務(wù)器經(jīng)過配置,可以以多種文檔格 式來存儲(chǔ)資源。在這種情況下,可以配置Web服務(wù)器,使其可 以通過與用戶的協(xié)商來決定使用哪種格式(及相關(guān)的MIME類型 )”最好”

6、發(fā)送響應(yīng)報(bào)文

Web服務(wù)器通過連接發(fā)送數(shù)據(jù)時(shí)也會(huì)面臨與接收數(shù)據(jù)一 樣的問題。服務(wù)器可能有很多條到各個(gè)客戶端的連接,有些是空 閑的,有些在向服務(wù)器發(fā)送數(shù)據(jù),還有一些在向客戶端回送響應(yīng) 數(shù)據(jù)。服務(wù)器要記錄連接的狀態(tài),還要特別注意對(duì)持久連接的處 理。對(duì)非持久連接而言,服務(wù)器應(yīng)該在發(fā)送了整條報(bào)文之后,關(guān) 閉自己這一端的連接。對(duì)持久連接來說,連接可能仍保持打開狀 態(tài),在這種情況下,服務(wù)器要正確地計(jì)算Content-Length首部 ,不然客戶端就無法知道響應(yīng)什么時(shí)候結(jié)束了

7、記錄日志?

最后,當(dāng)事務(wù)結(jié)束時(shí),Web服務(wù)器會(huì)在日志文件中添加 一個(gè)條目,來描述已執(zhí)行的事務(wù)

?
HTTPD介紹:
特性:
高度模塊化: core+modules
DSO:Dynamic Shared Object 動(dòng)態(tài)加/卸載
MPM:multi-processing module 多路處理模塊
MPM工作模式:
prefork:多進(jìn)程I/O模型,每個(gè)進(jìn)程響應(yīng)一個(gè)請(qǐng)求,默認(rèn)模型 。
一個(gè)主進(jìn)程:生成和回收n個(gè)子進(jìn)程,創(chuàng)建套接字,不響應(yīng)請(qǐng)求
多個(gè)子進(jìn)程:工作work進(jìn)程,每個(gè)子進(jìn)程處理一個(gè)請(qǐng)求;系統(tǒng)初始 時(shí),預(yù)先生成多個(gè)空閑進(jìn)程,等待請(qǐng)求,最大不超過1024個(gè) 。
worker:復(fù)用的多進(jìn)程I/O模型,多進(jìn)程多線程,IIS使用此模型 。
一個(gè)主進(jìn)程:生成m個(gè)子進(jìn)程,每個(gè)子進(jìn)程負(fù)責(zé)生成n個(gè)線程,每個(gè) 線程響應(yīng)一個(gè)請(qǐng)求,并發(fā)響應(yīng)請(qǐng)求:m*n
event:事件驅(qū)動(dòng)模型(worker模型的變種)
一個(gè)主進(jìn)程:生成m個(gè)子進(jìn)程,每個(gè)進(jìn)程直接響應(yīng)n個(gè)請(qǐng)求,并發(fā)響 應(yīng)請(qǐng)求:m*n,有專門的線程來管理這些keep-alive類型的線程,當(dāng)有 真實(shí)請(qǐng)求時(shí),將請(qǐng)求傳遞給服務(wù)線程,執(zhí)行完畢后,又允許釋放。這樣 增強(qiáng)了高并發(fā)場景下的請(qǐng)求處理能力 。
httpd-2.2: event 測試版, centos6默認(rèn)
httpd-2.4:event 穩(wěn)定版,centos7默認(rèn)
?
HTTPD安裝
版本:centos6:2.2
centos7:2.4
安裝方式:
rpm:centos發(fā)行版,穩(wěn)定,建議使用
編譯:定制或特殊需求
Centos 6程序環(huán)境:httpd-2.2
配置文件:
/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/*.conf
檢查配置語法:

????????????httpd -t

? ? ? ? ? ??service httpd configtest

? ????進(jìn)行語法檢測時(shí),會(huì)報(bào)錯(cuò),雖然沒有影響,但是也不好看;解決方法:

? ? ? ? ? ? 方法一:

? ? ? ? ? ? ? ? ? ? ? ?

方法二: vim /etc/hosts ?進(jìn)行本地地址解析

? ? ?

服務(wù)腳本:/etc/rc.d/init.d/httpd

腳本配置文件:/etc/sysconfig/httpd
服務(wù)控制和啟動(dòng):
chkconfig httpd on|off
service {start|stop|restart|status|configtest|reload} httpd
站點(diǎn)網(wǎng)頁文檔根目錄: /var/www/html

模塊文件路徑:?

/etc/httpd/modules

/usr/lib64/httpd/modules
?
主程序文件:
/usr/sbin/httpd
/usr/sbin/httpd.worker
/usr/sbin/httpd.event
主進(jìn)程文件: /etc/httpd/run/httpd.pid
/var/run/httpd/httpd.pid
日志文件目錄:
/var/log/httpd
access_log: 訪問日志
error_log:錯(cuò)誤 日志

幫助文檔包:

? ? ? ? ? ? httpd-manual

? ??? 如果上不了網(wǎng)時(shí),可以手動(dòng)安裝文檔包,進(jìn)行查看

Httpd 2.2常見配置
模塊文件路徑:
/usr/lib64/httpd/modules
httpd配置文件的組成:
# grep “Section” /etc/httpd/conf/httpd.conf 主配置文件
### Section 1: Global Environment 全局環(huán)境匹配
### Section 2: ‘Main’ server configuration 主服務(wù)的的配置
### Section 3: Virtual Hosts 虛擬主機(jī)配置

配置格式:

directive + value 指令 + 值

directive: 不區(qū)分字符大小寫

value: 為路徑時(shí),是否區(qū)分大小寫,取決于文件系統(tǒng)

下面先介紹一個(gè)小實(shí)驗(yàn),再介紹HTTPD的基本配置:

??

在客戶端機(jī)器連接服務(wù)器時(shí),顯示出Apache版本信息,不安全。

? ? ? ?編輯HTTPD主配置文件,加上下面一行就可以了

? ? ? #vim /etc/httpd/conf/httpd.conf

? ? ? ?ServerTokens productonly(可以簡寫prod)

? ? ? ? ??service restart httpd

?

HTTPD基本配置及用法:

1、切換工作模式:
vim /etc/sysconfig/httpd
HTTPD=/usr/sbin/httpd.worker
2、修改監(jiān)聽的IP和Port
Listen [IP:]PORT

(1) 省略IP表示為0.0.0.0;表示監(jiān)聽本機(jī)所有IP;
(2) Listen指令可重復(fù)出現(xiàn)多次
Listen 80
Listen 8080
(3) 修改監(jiān)聽socket,重啟服務(wù)進(jìn)程方可生效
4、MPM( Multi-Processing Module)多路處理模塊 :
prefork, worker, event(試驗(yàn)階段)

httpd-2.2不支持同時(shí)編譯多個(gè)模塊,所以只能編譯時(shí)選定一個(gè);rpm安裝的包提供三個(gè)二進(jìn)制程序文件,

分別用于實(shí)現(xiàn)對(duì)不同MPM機(jī)制的支持

確認(rèn)方法:
ps aux | grep httpd
默認(rèn)為/usr/sbin/httpd, 即prefork模式
查看靜態(tài)編譯的模塊 :httpd -l
查看靜態(tài)編譯及動(dòng)態(tài)裝載的模塊 :httpd –M
動(dòng)態(tài)模塊加載:不需重啟即生效
動(dòng)態(tài)模塊路徑 :/usr/lib64/httpd/modules/
更換使用的httpd程序:
vim /etc/sysconfig/httpd
HTTPD=/usr/sbin/httpd.worker
重啟服務(wù)生效
httpd.worker -l 查看
pstree -p |grep httpd 查看進(jìn)程和線程
測試:yum install httpd-tools
ab -c 1000 -n 10000?http://192.168.164.129/
?
?

prefork的默認(rèn)配置:

<IfModule?prefork.c>
StartServers 8 開機(jī)啟動(dòng)時(shí),默認(rèn)開啟8個(gè)進(jìn)程
MinSpareServers 5 最小空閑進(jìn)程
MaxSpareServers 20 最大空閑進(jìn)程
ServerLimit 256 最多進(jìn)程數(shù),最大20000
MaxClients 256 最大并發(fā)

MaxRequestsPerChild 4000 子進(jìn)程最多能處理的請(qǐng)求 數(shù)量。在處理MaxRequestsPerChild 個(gè)請(qǐng)求之后,

子進(jìn)程將 會(huì)被父進(jìn)程終止,這時(shí)候子進(jìn)程占用的內(nèi)存就會(huì)釋放(為0時(shí) 永遠(yuǎn)不釋放)

</IfModule>
?
worker的默認(rèn)配置:
<IfModule?worker.c>
StartServers 4 開機(jī)啟動(dòng)時(shí),默認(rèn)開啟4個(gè)進(jìn)程
MaxClients 300 最大支持多少客戶端并發(fā)訪問
MinSpareThreads 25 最小的空閑線程
MaxSpareThreads 75 最大的空閑線程
ThreadsPerChild 25 每個(gè)子進(jìn)程生成的線程數(shù)量
MaxRequestsPerChild 0 無限制
</IfModule>
5、DSO: Dynamic Shared Object 動(dòng)態(tài)共享對(duì)象
加載動(dòng)態(tài)模塊配置:
/etc/httpd/conf/httpd.conf
配置指令實(shí)現(xiàn)模塊加載格式:
LoadModule <mod_name> <mod_path>
模塊文件路徑可使用相對(duì)路徑:
相對(duì)于ServerRoot(默認(rèn)/etc/httpd)指向的路徑而言:
/etc/httpd/modules/

示例:要使用某個(gè)某塊,需按照下面格式,加載到主配置文件里即可:

? ?LoadModule auth_basic_module modules/mod_auth_basic.so

6、定義’Main’ server的文檔頁面路徑 :
DocumentRoot “/path”?網(wǎng)站主頁目錄
文檔路徑映射:
DocumentRoot指向的路徑為URL路徑的起始位置

下面先介紹一下,什么是URL:

URL組成
<scheme>://<user>:<password>@<host>:<port>/<path>;<params> ?<query>#<frag>
schame:方案,訪問服務(wù)器以獲取資源時(shí)要使用哪種協(xié)議
user:用戶,某些方案訪問資源時(shí)需要的用戶名
password:密碼,用戶對(duì)應(yīng)的密碼,中間用:分隔
Host:主機(jī),資源宿主服務(wù)器的主機(jī)名或IP地址
port:端口,資源宿主服務(wù)器正在監(jiān)聽的端口號(hào),很多方案有默認(rèn)端口號(hào)
path:路徑,服務(wù)器資源的本地名,由一個(gè)/將其與前面的URL組件分隔
params:參數(shù),某些方案用這個(gè)組件來指定輸入的參數(shù),參數(shù)為名/值對(duì),
URL中可多含多個(gè)參數(shù),用;分隔 .
query:查詢,某些方案會(huì)用這個(gè)組件傳遞參數(shù)以激活程序,如數(shù)據(jù)庫,用
?分隔,多個(gè)查詢用&分隔
frag:片段,一小片或一部分資源的名字,此組件在客戶端使用,用#分隔

好了,通過以上已經(jīng)了解了什么事URL了,下面介紹怎么設(shè)置主頁等相關(guān)操作:

實(shí)驗(yàn):更改HTTPD主頁;實(shí)驗(yàn)環(huán)境在centos6.9主機(jī)上搭建的HTTPD服務(wù),

? ? ? ? ? (主機(jī)IP:192.168.164.129)

? ? ? ? 首先自定義一個(gè)主頁目錄以及文件:

#vim /etc/httpd/conf/httpd.conf
DocumentRoot “/app/website1”
#service httpd reload

訪問測試:

? ? ? ? ?如果以上自定義的主頁文件不存在時(shí),會(huì)出現(xiàn)以下情景:

默認(rèn)情況下,會(huì)在/var/www/html目錄下找index.html這個(gè)主頁文件,如果找不到,則顯示下圖主頁。
DirectoryIndex index.html index.html.var
Include conf.d/*.conf
下圖主頁文件:/etc/httpd/conf.d/welcome.conf

? 如果welcome.conf這個(gè)文件也找不到,會(huì)出現(xiàn)下圖的情景:

?cd /etc/httpd/conf.d

? ? ? ? ?mv welcome.conf welcome.conf.bak

如果把主配置文件里的主頁目錄再改回去,

cd /var/www/html/
mv index.html b.html

下圖把主頁目錄下的文件都列出來了,不安全
vim /etc/httpd/conf/httpd.conf
Option -Indexes FollowSymLinks
service httpd reload
?

下圖中,再次訪問網(wǎng)站時(shí),主目錄下的文件就顯示不了,變得安全點(diǎn)。

注意:SELinux和iptables的狀態(tài)
7、站點(diǎn)訪問控制常見機(jī)制
可基于兩種類型的路徑指明對(duì)哪些資源進(jìn)行何種訪問控制
訪問控制機(jī)制有兩種:客戶端來源地址,用戶賬號(hào)
文件系統(tǒng)路徑:
<Directory “/path “>
</Directory>
<File “/path/file”>
</File>
<FileMatch “PATTERN”>
</FileMatch>
URL路徑:
<Location ” ” >
</Location>
<LocationMatch ” “>
….
</LocationMatch>
示例:
<FilesMatch “.(gif|jpe?g|png)$”>
<Files “?at.*”> 通配符
<Location /status>
<LocationMatch “/(extra|special)/data”>
訪問控制機(jī)制:
基于來源地址
基于賬號(hào)
Directory中“基于來源地址”實(shí)現(xiàn)訪問控制
(1)Options: 后跟1個(gè)或多個(gè)以空白字符分隔的選項(xiàng)列表 在選項(xiàng)前的
+,- 表示增加或刪除指定選項(xiàng)
所有可用特性:Indexes Includes FollowSymLinks
SymLinksifOwnerMatch ExecCGI MultiViews
常見選項(xiàng):
Indexes:指明的URL路徑下不存在與定義的主頁面資源相符的資源
文件時(shí),返回索引列表給用戶 。沒寫時(shí)默認(rèn)是不開啟的。

?
FollowSymLinks:允許訪問主頁目錄下的符號(hào)鏈接文件所指向的源文
件 ;沒寫時(shí)默認(rèn)是開啟的。
None:全部禁用
All: 全部允許

(2) AllowOverride

與訪問控制相關(guān)的哪些指令可以放在指定目錄下的?.htaccess(由
AccessFileName指定)文件中,覆蓋之前的配置指令
只對(duì)<directory>語句有效
AllowOverride All: 所有指令都有效
AllowOverride None: .htaccess 文件里定義的策略無效
AllowOverride AuthConfig Indexes 除了AuthConfig 和
Indexes的其它指令都無法覆蓋

? 示例:實(shí)現(xiàn)AllowOverride ,基于指定目錄.htaccess,以及FollowSymlinks的用法

? ? ? ? ?# vim /etc/httpd/conf/httpd.conf

 

touch /app/website1/.htaccess

? 訪問測試,訪問軟鏈接,直接指向源文件的內(nèi)容。

?
?
?
?
?
(3)基于來源地址的訪問控制機(jī)制
Order:定義生效次序;寫在最后面的表示默認(rèn)法則
Order allow,deny ? ?:默認(rèn)拒絕
Order deny,allow ? ?:默認(rèn)允許

Allow from?

?Deny from

來源地址:IP
NetAddr: 172.16
172.16.0.0

172.16.0.0/16

具體用法:下圖中定義了order allow,deny先允許,后拒絕;根據(jù)法則后定義的生效

? ? #curl ?http://192.168.164.29 ??是被拒絕訪問的

? ? ?

8、定義默認(rèn)主頁面
DirectoryIndex index.html inex.html.var
9、日志設(shè)定
日志類型:
訪問日志 錯(cuò)誤日志
錯(cuò)誤日志:
ErrorLog logs/error_log
LogLevel warn?定義日志級(jí)別,默認(rèn)值warn
loglevel 可選值: debug, info, notice, warn,error crit, alert, emerg
訪問日志: /var/log/httpd/access_log
定義日志格式:LogFormat format strings
LogFormat “%h %l %u %t ”%r” %>s %b ”%{Referer}i” ”%
{User-Agent}i”” combined
使用日志格式: CustomLog logs/access_log combined
參考幫助: http://httpd.apache.org/docs/2.2/mod/mod_log_config
.html#formats
%h 客戶端IP地址
%l 遠(yuǎn)程用戶,啟用mod_ident才有效,通常為減號(hào)“-”
%u 驗(yàn)證(basic,digest)遠(yuǎn)程用戶,非登錄訪問時(shí),為 一個(gè)減號(hào)“-”
%t 服務(wù)器收到請(qǐng)求時(shí)的時(shí)間
%r First line of request,即表示請(qǐng)求報(bào)文的首行;記錄了 此次請(qǐng)求
的“方法”,“URL”以及協(xié)議版本
%>s 響應(yīng)狀態(tài)碼
%b 響應(yīng)報(bào)文的大小,單位是字節(jié);不包括響應(yīng)報(bào)文http首部
%{Referer}i 請(qǐng)求報(bào)文中首部“referer”的值;即從哪個(gè)頁 面中的超鏈接跳
轉(zhuǎn)至當(dāng)前頁面的
%{User-Agent}i 請(qǐng)求報(bào)文中首部“User-Agent”的值;即 發(fā)出請(qǐng)求的應(yīng)
用程序
?
?
10、定義路徑別名
格式: Alias /URL/ ?“/PATH/”
DocumentRoot “/www/htdocs”
http://www.vfuj.cn/download/bash.rpm
==>/www/htdocs/download/bash.rpm

Alias /download/ ? ?“/rpms/pub/”

http://www.vfuj.cn/download/bash.rpm
==>/rpms/pub/bash.rpm

http://www.vfuj.cn/images/logo.png

==>/www/htdocs/images/logo.png

注意:以上紅色字體標(biāo)識(shí),是一一對(duì)應(yīng)的,注意/路徑和別名的區(qū)分。

?
11、設(shè)定默認(rèn)字符集
AddDefaultCharset UTF-8
中文字符集:GBK, GB2312, GB18030
?
12、基于用戶的訪問控制
認(rèn)證質(zhì)詢:WWW-Authenticate:響應(yīng)碼為401,拒絕客戶端請(qǐng)求,并說明要求客戶端提供賬號(hào)和密碼
認(rèn)證:Authorization:客戶端用戶填入賬號(hào)和密碼后再次發(fā)送請(qǐng)求報(bào)文;認(rèn)證通過時(shí),則服務(wù)器發(fā)送響應(yīng)的資源
認(rèn)證法式兩種:
basic:明文–不安全,可以基于https訪問
digest:消息摘要認(rèn)證,兼容性差
安全域:需要用戶認(rèn)證后方能訪問的路徑;應(yīng)該通過名稱對(duì)其進(jìn)行標(biāo)識(shí),
以便告知用戶認(rèn)證的原因
用戶的賬號(hào)和密碼
虛擬賬號(hào):僅用于訪問某服務(wù)時(shí)用到的認(rèn)證標(biāo)識(shí)
存儲(chǔ):文本文件,SQL數(shù)據(jù)庫,ldap目錄存儲(chǔ),nis等
?
basic認(rèn)證配置示例:
(1) 定義安全域
<Directory “/path”>
Options None
AllowOverride None 是否允許驗(yàn)證.htaccess文件
AuthType Basic 認(rèn)證類型
AuthName “String” 管理目錄提示語句
AuthUserFile “/PATH/HTTPD_USER_PASSWD_FILE”
驗(yàn)證配置文件
Require user username1 username2 …
指定用戶
</Directory>
允許賬號(hào)文件中的所有用戶登錄訪問: Require valid-user
(2) 提供賬號(hào)和密碼存儲(chǔ)(文本文件)
使用專用命令完成此類文件的創(chuàng)建及用戶管理
htpasswd命令來源于httpd-tools包
htpasswd?[options] /PATH/HTTPD_PASSWD_FILE username
-c:自動(dòng)創(chuàng)建文件,僅應(yīng)該在文件不存在時(shí)使用
-m:md5格式加密
-s:sha格式加密
-D:刪除指定用戶
?

實(shí)驗(yàn):基于用戶賬號(hào)密碼認(rèn)證的訪問控制;

實(shí)驗(yàn)環(huán)境在centos6.9上搭建httpd服務(wù),(192.168.8.128)

基于安全考慮可以設(shè)置嚴(yán)格的權(quán)限:
chmod 600 /etc/httpd/conf.d/.husers
setfacl -m u:apache:r /etc/httpd/conf.d/.husers
針對(duì)主頁目錄進(jìn)行配置:

也可以定義在.htaccess文件里:

vim /etc/httpd/conf/httpd.conf

#?cd /app/website1/admin
vim .htaccess

基于組賬號(hào)進(jìn)行認(rèn)證
(1) 定義安全域
<Directory “/path”>
AuthType Basic
AuthName “String“
AuthUserFile “/PATH/HTTPD_USER_PASSWD_FILE”
AuthGroupFile “/PATH/HTTPD_GROUP_FILE
Require group grpname1 grpname2 …
</Directory>
(2) 創(chuàng)建用戶賬號(hào)和組賬號(hào)文件;
組文件:每一行定義一個(gè)組
GRP_NAME: username1 username2 …

實(shí)驗(yàn):基于用戶組的安全認(rèn)證,在上個(gè)實(shí)驗(yàn)基礎(chǔ)上實(shí)現(xiàn)

?
1、創(chuàng)建組文件
#vim /etc/httpd/conf.d/.htgroups
g1:httpuser1 httpuser2
g2:httpuser3
2、定義安全域
cd /app/website1/admin
vim .htaccess

字符瀏覽器測試:在另一臺(tái)機(jī)器上測試
links 192.168.8.128/admin
遠(yuǎn)程客戶端和用戶驗(yàn)證的控制
Satisfy ALL|Any
ALL 客戶機(jī)IP和用戶驗(yàn)證都需要通過才可以
Any客戶機(jī)IP和用戶驗(yàn)證,有一個(gè)滿足即可

示例:?

Require valid-user

Order allow,deny
Allow from 192.168.1
Satisfy Any
14、虛擬主機(jī)
站點(diǎn)標(biāo)識(shí): socket
IP相同,但端口不同
IP不同,但端口均為默認(rèn)端口
FQDN不同;
請(qǐng)求報(bào)文中首部
Host: www.vfuj.cn
有三種實(shí)現(xiàn)方案:
基于ip:為每個(gè)虛擬主機(jī)準(zhǔn)備至少一個(gè)ip地址 ;
基于port:為每個(gè)虛擬主機(jī)使用至少一個(gè)獨(dú)立的port;
基于FQDN:為每個(gè)虛擬主機(jī)使用至少一個(gè)FQDN
注意:一般虛擬機(jī)不要與main主機(jī)混用;因此,要使用虛擬主機(jī), 一般
先禁用main主機(jī)
禁用方法:注釋中心主機(jī)的DocumentRoot指令即可
虛擬主機(jī)的配置方法:
<VirtualHost IP:PORT>
ServerName FQDN
DocumentRoot “/path”
</VirtualHost>
建議:上述配置存放在獨(dú)立的配置文件中
其它可用指令:
ServerAlias:虛擬主機(jī)的別名;可多次使用
ErrorLog: 錯(cuò)誤日志
CustomLog:訪問日志
<Directory “/path”> </Directory>
Alias
?
實(shí)驗(yàn)1:基于IP的虛擬主機(jī)
a、準(zhǔn)備環(huán)境,創(chuàng)建多個(gè)主頁文件,并為網(wǎng)卡配置多個(gè)IP地址
? ? ? ? ? ip addr add 192.168.8.130/24 dev eth0 label eth0:1

b、虛擬主機(jī)配置文件設(shè)置:
cd /etc/httpd/conf.d
vim vhosts.conf

c、在另一臺(tái)客戶端機(jī)器上進(jìn)行驗(yàn)證
2、基于端口的虛擬主機(jī):

3、基于FQDN的虛擬主機(jī)

15、status頁面
幫助我們實(shí)現(xiàn)http服務(wù)器的一些功能狀態(tài)的查看,以頁面的方式查看他的工作情況:進(jìn)程編號(hào),負(fù)載狀態(tài)。
vim /etc/httpd/conf/httpd.conf
LoadModule status_module modules/mod_status.so

要想實(shí)現(xiàn)status功能,模塊必須加載。

可以在虛擬機(jī)設(shè)置里面定義,也可以單獨(dú)定義在conf.d目錄下。

<Location /server-status>
SetHandler server-status
Order allow,deny
Allow from 172.16
</Location>
ExtendedStatus On 顯示擴(kuò)展信息

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國內(nèi)好評(píng)如潮的Linux云計(jì)算運(yùn)維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開發(fā)專業(yè)人才培訓(xùn)機(jī)構(gòu)!