WEB服务与NGINX(10)-NGINX访问控制功能
1.NGINX访问控制功能
nginx的访问控制有两种方式:
- 基于ip进行限制,由ngx_http_access_module模块提供;
- 对特定网页进行用户名密码认证,由ngx_http_auth_basic_module模块提供;
1.1 基于ip地址的访问控制
allow address | CIDR | unix: | all;
允许访问指定的网络或地址,如果指定unix:,表示运行UNIX-domain所有套接字
支持环境:http, server, location, limit_except
deny address | CIDR | unix: | all;
允许访问指定的网络或地址
支持环境:http, server, location, limit_except
匹配规则为:自上而下检查,一旦匹配,将生效,不再向下匹配所以条件严格的置前。
场景一:只允许指定的来源IP访问/imags目录
[root@nginx01 ~]# vim /etc/nginx/conf.d/virtualhost.conf
server {
listen 80;
server_name www.nginx01.com; location / {
root /data/nginx/html/web1;
index index.html;
}
location /image {
root /data/nginx/html/web1/
allow 172.0.0.1;
allow 192.168.20.0/24;
deny all;
}
}场景二:禁止特定客户端IP访问/images目录,其他IP允许访问
[root@nginx01 ~]# vim /etc/nginx/conf.d/virtualhost.conf
server {
listen 80;
server_name www.nginx01.com; location / {
root /data/nginx/html/web1;
index index.html;
}
location /image {
root /data/nginx/html/web1/
deny 172.16.0.0/16;
allow all;
}
}
1.2 基于用户名密码的认证
auth_basic string | off;
启用使用“HTTP基本身份验证”协议验证用户名和密码,默认为off,string为提示信息。
支持环境:http, server, location, limit_except
auth_basic_user_file file;
指定以下列格式保存用户名和密码的文件进行验证
支持环境:http, server, location, limit_except
用户口令文件格式:
明文文本:格式name:password:comment
# comment
name1:password1
name2:password2:comment
name3:password3
加密文本:由htpasswd命令实现,命令由httpd-tools所提供。
htpasswd命令的用法如下:
htpasswd [options] /PATH/HTTPD_PASSWD_FILE username
选项
-c 自动创建文件,仅首次时使用,再次使用会覆盖
-p 明文密码
-d CRYPT格式加密,默认
-m md5格式加密
-s sha格式加密
D 删除指定用户
-b:批模式添加用户,类似于passwd –stdin,多用于脚本。
场景示例:为/login或/admin目录下的内容提供用户认证保护:
#1.nginx的配置文件如下:
[root@nginx01 ~]# vim /etc/nginx/conf.d/virtualhost.conf
server {
listen 80;
server_name www.nginx01.com;
charset utf-8,gbk; location / {
root /data/nginx/html/web1;
index index.html;
} location ~* /(admin|login) {
root /data/nginx/html/web1/;
auth_basic "please login!"; <==提示信息
auth_basic_user_file /etc/nginx/.nginxuser; <==密码文件
}
} #2.重启nginx服务
[root@nginx01 web1]# systemctl reload nginx.service #3.建立admin,login相关目录
[root@nginx01 ~]# cd /data/nginx/html/web1/
[root@nginx01 web1]# mkdir admin
[root@nginx01 web1]# mkdir login
[root@nginx01 web1]# echo "admin area" > admin/index.html
[root@nginx01 web1]# echo "login area" > login/index.html #4.使用htpasswd工具建立密码文件
[root@nginx01 web1]# yum install httpd-tools -y #首次创建文件使用-c选项
[root@nginx01 web1]# htpasswd -c -b /etc/nginx/.nginxuser user1 123456
Adding password for user user1 [root@nginx01 web1]# htpasswd -b /etc/nginx/.nginxuser user2 123456
Adding password for user user2 [root@nginx01 web1]# cat /etc/nginx/.nginxuser
user1:$apr1$xTEjRg/g$6IbW.lOB0Y2vXGjpB9zL70
user2:$apr1$Ukqm8pEa$2VgnSmA0sfkxdkuyusTxr. #5.客户端测试:
#不输入用户密码会返回401
[root@xuzhichao ~]# curl http://www.nginx01.com/admin
<html>
<head><title>401 Authorization Required</title></head>
<body>
<center><h1>401 Authorization Required</h1></center>
<hr><center>nginx/1.20.1</center>
</body>
</html> #输入用户名密码可以正常访问
[root@xuzhichao ~]# curl --user user1:123456 http://www.nginx01.com/admin/
admin area
客户端web测试:

WEB服务与NGINX(10)-NGINX访问控制功能的更多相关文章
- flask在centos下搭建web服务【uwsgi,nginx】
centos操作系统 uWSGI是一个web服务器,Nginx进行反向代理的其实跟这些服务器可以说没有任何关系,你提供动态内容的服务器可以是apache/nginx/tomcat,当然也可以是uWSG ...
- Web服务图片压缩,nginx+lua生成缩略图
背景 目前而言,用移动端访问Web站点的用户越来越多,图片对流量的消耗是比较大的,之前一个用户用我们网站的app浏览的时候,2个小时耗去了2个G的流量,这是个很严重的问题,需要对图片进行压缩,减少对用 ...
- svn + nginx unit + python3自动化发布web服务方法
本周将python web服务管理更换成nginx unit以后发现接口性能有了明显的提升,访问速度快了不少.不过有个很大的问题就是使用svn自动化发布以后,服务并没有刷新使用新的代码运行,而又不懂得 ...
- Web服务器之Nginx详解(操作部分)
大纲 一.前言 二.Nginx 安装与配置 三.Nginx 配置文件详解 四.Nginx 命令参数 五.配置Nginx提供Web服务 六.配置Nginx的虚拟主机 七.配置Nginx的用户认证 八.配 ...
- 【docker专栏4】使用docker安装nginx提供web服务
一般学习一项技术,会先用一个最简单的例子或最典型的例子来向大家讲解入门内容,所以此文为大家介绍使用docker安装nginx容器服务.从基础使用的角度来讲,此文几乎涵盖了docker最核心的内容:镜像 ...
- 框架5--nginx安装部署 上(web服务)
目录 框架5--nginx安装部署(web服务) 1.练习 2.昨日问题 3.今日内容 4.什么是web服务 5.web服务器软件 6.部署Nginx 7.平滑增加Nginx模块 8.Nginx的命令 ...
- nginx(二)nginx的安装
下载 nginx官网下载地址 把源码解压缩之后,在终端里运行如下命令: ./configure make make install 默认情况下,Nginx 会被安装在 /usr/local/nginx ...
- linux web服务基础知识,dns
#web服务基础知识c/s 客户端/服务器b/s 浏览器/服务器 nginx > web server 服务端浏览器 > web client 客户端 #dns解析 ...
- web服务的简单介绍及apache服务的安装
一,web服务的作用: 是指驻留于因特网上某种类型计算机的程序,可以向浏览器等Web客户端提供文档.可以放置网站文件,让全世界浏览: 可以放置数据让全世界下载.目前最主流的三个Web服务器是Ap ...
- web服务基础
Web服务基础 用户访问网站的基本流程 我们每天都会用web客户端上网,浏览器就是一个web客户端,例如谷歌浏览器,以及火狐浏览器等. 当我们输入www.oldboyedu.com/时候,很快就能看到 ...
随机推荐
- Makefile 简单学习
一.Makefile 简介 Makefile 是一种常用于编译的脚本语言.它可以更好更方便的管理你的项目的代码编译,节约编译时间(没改动的文件不编译).注意 Makefile 文件命令必须是 Make ...
- DIY 3 种分库分表分片算法,自己写的轮子才吊!
大家好,我是小富- 前言 本文是<ShardingSphere5.x分库分表原理与实战>系列的第六篇,书接上文实现三种自定义分片算法.通过自定义算法,可以根据特定业务需求定制分片策略,以满 ...
- Python企业面试题1 —— 基础篇
1. b.B.KB.MB.GB的关系? b ---- 位(bit) B ---- 字节(一个字节等于8位) 1 B = 8 bit 1 KB = 1024 B 1 MB = 1024 KB 1 GB ...
- Bootstrap实战 - 评论列表
一.介绍 社交媒体网站盛行,人们常常会使用评论表达自己的观点,评论功能已然成为网站的一部分. 二.知识点 2.1 媒体对象 官方解释:这是一个抽象的样式,用以构建不同类型的组件,这些组件都具有在文本内 ...
- OpenHarmony社区运营报告(2022年9月)
篇首语 在开放原子开源基金会.OpenAtom OpenHarmony(简称"OpenHarmony")工作委员会.会员及共建单位和开发者的共同努力下,OpenHarmony在技术 ...
- 配置java.library.path加载库文件
前言:本文将告诉你Java加载dll或so库文件,配置 java.library.path路径 规避异常:java.lang.UnsatisfiedLinkError: no XXX in java. ...
- 设置 BCompare 打开文件时的默认字符编码
每次比对 .h .cpp 文件,BCompare总是默认以西欧字符编码打开文件,导致中文都变成乱码了,还需要手动的修改文件字符编码,这样才能正常的显示.非常的不方便 然后我们就需要设置默认的字符编码, ...
- 将py文件编译成pyc
核心代码 import compileall compileall.compile_file("a.py", legacy=True, force=True) 演示步骤 1.新建 ...
- 用HarmonyOS做一个可以手势控制的电子相册应用(ArkTS)
介绍 本篇 Codelab 介绍了如何实现一个简单的电子相册应用,主要功能包括: 1. 实现首页顶部的轮播效果. 2. 实现页面多种布局方式. 3. 实现通过手势控制图片的放大.缩小.左右滑动查 ...
- HarmonyOS崩溃服务能力全新上线,帮你高效解决崩溃问题!
原文:https://mp.weixin.qq.com/s/YmYzNXsvsqt8U8JX3vlmrg,点击链接查看更多技术内容. 一.为什么需要崩溃服务能力 用户在使用原子化服务时,出现卡顿.缓慢 ...