点赞
评论
收藏
分享
举报
Nginx访问限制配置
发表于2021-02-08 09:56

浏览 5.7k

Nginx访问限制配置


nginx访问限制可以基于两个方面,一个是基于ip的访问控制,另一个是基于用户的信任登陆控制

下面我们将对这两种方法逐个介绍


基于IP的访问控制
介绍: 可以通过配置基于ip的访问控制,达到让某些ip能够访问,限制哪些ip不能访问的效果

这是允许 访问的配置方法
配置语法:allow address | CIDR | unix | all;
默认配置:没有配置
配置路径:http、server、location、limit_except下;


这是不允许访问的配置方法
配置语法:deny address | CIDR | unix | all;
默认配置:没有配置
配置路径:http、server、location、limit_except下;

基于IP访问限制的测试
1. 查看本机ip地址,如果是公网,则到 ip138网查看,如果是试验,使用cmd查看。
2. 在 /opt/app/code/目录下添加一个 admin.html 文件,里面就是一个带着背景颜色的普通admin页面
3. 在 /etc/nginx/conf.d/目录下,修改default.conf文件,添加如下内容


由上图可知,添加了一个location,来匹配 admin.html,在里面设置了基于ip限制的配置, 将 192.xx.xx.xx 限制,不让其访问,其他的都可以访问。
4. 重新加载nginx
5. 浏览器输入网址,查看日志



6. 从上图看之,已经实现了 限制某个ip的访问,如果只允许某个ip访问,只需要改下关键字即可。



基于登陆用户信任的访问控制
举个例子,我们在访问apache信息时弹出一个用户密码框提示,来进行一个访问前验证。

配置语法:auth_basic string | off;
默认配置:auth_basic off;
配置路径:http、server、location、limit_except;

匹配配置语法: auth_basic_user_file filePath;
匹配默认配置: 没有配置
匹配配置路径: http、server、location、limit_except;

1. 需要添加一个身份文件,auth_conf 文件,这里使用一个 htpasswd工具
使用一下命令   htpasswd -c ./auth_conf  root;
解释一下:  htpasswd 命令   -c:默认是使用md5加密, ./auth_conf 是指定路径和文件 , root是用户名
输入之后,会输入两次密码


2. 修改 default.conf配置文件,修改内容如下

3. 重新加载nginx
4. 输入网址,查看结果,可以看出 要输入身份信息才能访问

已修改于2023-03-06 02:19
创作不易,留下一份鼓励
守望

暂无个人介绍

关注



写下您的评论
发表评论
全部评论(0)

按点赞数排序

按时间排序

关于作者
守望
这家伙很懒还未留下介绍~
89
文章
0
问答
18
粉丝
相关文章
目录一、安装1.1yum安装1.2编译安装二、配置文件详解三、相关配置实例3.1、站点基本配置3.2、root与alias3.3、location的匹配规则3.4、Nginx四层访问控制3.5、Nginx账户认证功能3.6、自定义错误页面3.7、自定义访问日志3.8、检测文件是否存在3.9、长连接配置3.10、作为下载服务器配置3.11、作为上传服务器3.12、隐藏NginxServer版本信息3.13、其它配置项四、高级应用4.1、状态页配置4.2、变量使用4.3、压缩功能4.4、https配置4.5、关于favicon.ico4.6、rewrite指令4.7、代理功能4.8、负载均衡4.9、FastCGI配置五、系统参数优化正文一、安装1.1yum安装(1)配置好yum源与epel源#本地光盘yum源 [development] name=dvdbaserepo baseurl=file:///mnt/cdrom/ enabled=1 gpgcheck=1 gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-CentOS-7 #
点赞 5
浏览 18.1k
Name nginx_http_upstream_check_module-supportupstreamhealthcheckwith Nginx Synopsis http{ upstreamcluster{ #simpleround-robin server192.168.0.1:80; server192.168.0.2:80; checkinterval=5000rise=1fall=3timeout=4000; #checkinterval=3000rise=2fall=5timeout=1000type=ssl_hello; #checkinterval=3000rise=2fall=5timeout=1000type=http; #check_http_send"
点赞 0
浏览 4.3k
Nginxhttpupstreamcheckstatus Nginxhttpupstreamcheckstatus Checkupstreamservernumber:1,generation:3 Index Upstream Name Status Risecounts Fallcounts Checktype Checkport 0 backend 106.187.48.116:80
点赞 0
浏览 3.8k