apache默認支持兩種支持訪問控制,一種針對目錄,一種針對文件的,兩種方式都會受到訪問控制列表的影響html
針對目錄的:
<Directory>
指令1
指令2
</Directory>web
針對文件:
<File ~ "file"> ~匹配正則
指令1
指令2
<File>
訪問控制的類型
1.設置目錄特性
2.基於主機
3.基於用戶apache
基於主機/目錄的訪問控制
[root@client ~]#echo test.com >/var/www/html/index.html
[root@client ~]# vim /etc/httpd/conf/httpd.conf 修改httpd主配置文件vim
<Directory "/var/www/html"> 第131行
Options Indexes FollowSymLinks
AllowOverride None
#Require all granted (要求全部受權) 註釋此行
Order allow,deny 訪問控制匹配順序爲先容許,後拒絕
Allow from 192.168.11.1 192.168.11.12 192.168.11.11 容許此IP的客戶機訪問此目錄的網站
</Directory>
systemctl restart httpd
[root@client ~]# curl 192.168.11.11 分別用客戶機192.168.11.一、192.168.11.十二、192.168.11.13訪問網站,訪問結果是11.一、192.168.11.12這臺主機能訪問網站,11.13是不能訪問網站的curl
# apache用戶認證要接上面的一塊兒作
是指客戶端在訪問網站時會提示輸入用戶名和密碼,經過驗證後才能顯示網頁內容。ide
papche認證用戶帳號的建立工具:htpasswd
查htpasswd文件由哪一個包提供: yum provides htpasswd
安裝htpasswd工具的軟件 : yum -y install httpd-tools工具
訪問httpd的離線幫助手冊(必須看):firefox 192.168.11.11/manual測試
<Directory /var/www/html/>
AuthName web1 認證名稱爲web1,名稱是用戶取的
AuthType Basic 認證類型爲Basic基本認證
AuthUserFile /etc/httpd/htuser 認證的用戶帳號和密碼的文件,此文件用htpasswd命令來生成
Require user lily 容許訪問的用戶帳號網站
</Directory>ui
實現思路: 對/var/www/html默認主頁目錄作基於用戶認證的訪問控制。
第一步,建立用戶認證帳號文件。
建立基於用戶認證的訪問用戶帳號:
htpasswd -cm /etc/httpd/htuser lucy 建立lucy用戶,並生成htuser帳號文件,密碼01
htpasswd -m /etc/httpd/htuser lily 添加lily用戶到htuser文件中
cat /etc/httpd/htuser 查看htuser文件
htpasswd命令選項:
-c 建立新的htpasswd帳號文件,僅用於第1次
-m 以MD5方式加密用戶密碼
-D 刪除指定的用戶帳
第2步,對/var/www/html默認煮主頁目錄設置基於用戶認證的訪問控制。vim /etc/httpd/conf/httd.conf 在文件的以下代碼中編輯以下內容131 <Directory "/var/www/html">156井 Require all granted 註釋此行159AuthName web1160AuthType Basic161AuthUserFile /etc/httpd/htuser162Require user lily</Directory>第3步,重啓服務,訪問測試systemctl restart httpdcurl 192.168.11.11 匿名訪問網站(沒法訪問)curl 192.168.11.11 -u lily:01 使用此用戶訪問網站(正常訪問)curl 912.168.11.11 -u lucy:01 沒法訪問在window10中訪問網站http://192.168.11.11驗證結果爲提示輸入用戶名和密碼才說明設置成功