什么是Nginx訪問(wèn)限制配置
nginx訪問(wèn)限制可以基于兩個(gè)方面,一個(gè)是基于ip的訪問(wèn)控制,另一個(gè)是基于用戶的信任登陸控制
下面我們將對(duì)這兩種方法逐個(gè)介紹
基于IP的訪問(wèn)控制介紹:
可以通過(guò)配置基于ip的訪問(wèn)控制,達(dá)到讓某些ip能夠訪問(wèn),限制哪些ip不能訪問(wèn)的效果
這是允許 訪問(wèn)的配置方法
配置語(yǔ)法:allow address | CIDR | unix | all;
默認(rèn)配置:沒(méi)有配置
配置路徑:http、server、location、limit_except下;
這是不允許訪問(wèn)的配置
方法配置語(yǔ)法:deny address | CIDR | unix | all;
默認(rèn)配置:沒(méi)有配置
配置路徑:http、server、location、limit_except下;
基于IP訪問(wèn)限制的測(cè)試
1. 查看本機(jī)ip地址,如果是公網(wǎng),則到 ip138網(wǎng)查看,如果是試驗(yàn),使用cmd查看。
2. 在 /opt/app/code/目錄下添加一個(gè) admin.html 文件,里面就是一個(gè)帶著背景顏色的普通admin頁(yè)面
3. 在 /etc/nginx/conf.d/目錄下,修改default.conf文件,添加如下內(nèi)容
由上圖可知,添加了一個(gè)location,來(lái)匹配 admin.html,在里面設(shè)置了基于ip限制的配置, 將 192.xx.xx.xx 限制,不讓其訪問(wèn),其他的都可以訪問(wèn)。
4. 重新加載nginx
5. 瀏覽器輸入網(wǎng)址,查看日志
6. 從上圖看之,已經(jīng)實(shí)現(xiàn)了 限制某個(gè)ip的訪問(wèn),如果只允許某個(gè)ip訪問(wèn),只需要改下關(guān)鍵字即可。
示例:
一、服務(wù)器全局限IP
#vi nginx.conf
allow 10.115.0.116; #允許的IP
deny all;
二、站點(diǎn)限IP
#vi vhosts.conf
站點(diǎn)全局限IP:
location / {
index index.html index.htm index.php;
allow 10.115.0.116;
deny all;
站點(diǎn)目錄限制
location ^~ /test/ {
allow 10.115.0.116;
deny all;
基于登陸用戶信任的訪問(wèn)控制
舉個(gè)例子,我們?cè)谠L問(wèn)apache信息時(shí)彈出一個(gè)用戶密碼框提示,來(lái)進(jìn)行一個(gè)訪問(wèn)前驗(yàn)證。
配置語(yǔ)法:auth_basic string | off;
默認(rèn)配置:auth_basic off;
配置路徑:http、server、location、limit_except;
匹配配置語(yǔ)法: auth_basic_user_file filePath;
匹配默認(rèn)配置: 沒(méi)有配置
匹配配置路徑: http、server、location、limit_except;
1. 需要添加一個(gè)身份文件,auth_conf 文件,這里使用一個(gè) htpasswd工具
使用一下命令 htpasswd -c ./auth_conf root;
解釋一下: htpasswd 命令 -c:默認(rèn)是使用md5加密, ./auth_conf 是指定路徑和文件 , root是用戶名
輸入之后,會(huì)輸入兩次密碼
2. 修改 default.conf配置文件,修改內(nèi)容如下
3. 重新加載nginx
4. 輸入網(wǎng)址,查看結(jié)果,可以看出 要輸入身份信息才能訪問(wèn)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。