1眷唉、nginx 訪問控制模塊
(1)基于IP的訪問控制:http_access_module
(2)基于用戶的信任登錄:http_auth_basic_module
2蔫慧、基于IP的訪問控制
(1)配置語法
Syntax:allow address | CIDR | unix: | all;
default:默認(rèn)無
Context:http钠至,server钟沛,location
Syntax:deny address | CIDR | unix: | all;
default:默認(rèn)無
Context:http矾柜,server窄刘,location
(2)配置測試
[root@nginx1 conf.d]# vim access_mod.conf
server {
listen 80;
server_name localhost;
location ~ ^/admin {
root /home/www/html/;
index index.html;
deny 10.8.156.23;
allow all;
}
}
[root@nginx1 conf.d]# nginx -s reload
如果先允許訪問窥妇,在定義拒絕訪問。那么拒絕訪問不生效娩践。
使用10.8.156.23訪問
image.png
訪問被拒絕
使用電腦主機(jī)訪問
image.png
如果你想拒絕某個指定URL地址的所有請求活翩,而不是僅僅對其限速烹骨,只需要在
location
塊中配置deny
all指令:
3、基于用戶的信任登錄
(1)配置語法
Syntax:auth_basic string | off;
default:auth_basic off;
Context:http材泄,server沮焕,location,limit_except
Syntax:auth_basic_user_file file;
default:默認(rèn)無
Context:http拉宗,server峦树,location,limit_except
file:存儲用戶名密碼信息的文件旦事。
(2)配置示例
server {
listen 80;
server_name localhost;
location ~ ^/admin {
root /home/www/html/;
index index.html;
auth_basic "Auth access test!";
auth_basic_user_file /etc/nginx/auth_conf;
}
}
[root@nginx1 conf.d]# nginx -s reload
auth_basic不為
off魁巩,開啟登錄驗(yàn)證功能,
auth_basic_user_file`加載賬號密碼文件姐浮。
3谷遂、建立口令文件
[root@nginx1 conf.d]# yum install -y httpd-tools #htpasswd 是開源 http 服務(wù)器 apache httpd 的一個命令工具,用于生成 http 基本認(rèn)證的密碼文件
[root@nginx1 conf.d]# htpasswd -cm /etc/nginx/auth_conf user10 #-c:創(chuàng)建一個新用戶 -m:以MD5的方式加密密碼
[root@nginx1 conf.d]# htpasswd -m /etc/nginx/auth_conf user20
[root@nginx1 conf.d]# cat /etc/nginx/auth_conf
user10:$apr1$Fp/YW2O/$07mvswSk9CwJwHvGOHPoY1
user20:$apr1$1PpH0CmS$dMVR.NLWuTX0eLvbEd/Oo.
瀏覽器訪問http://10.8.156.11/admin/
image.png
輸入用戶名密碼卖鲤,訪問成功
image.png
4埋凯、局限性
(1)用戶信息依賴文件方式
(2)操作管理機(jī)械,效率低下