Nginx配置访问权限

基于IP配置Nginx的访问权限

Nginx配置通过两种途径支持基本访问权限的控制,其中一种是由HTTP标准模块ngx_http_access_module支持的,通过IP来判断客户端是否拥有对Nginx的访问权限,这里包括两个指令:

allow指令,用于设置允许访问Nginx的客户端IP;

allow address | CIDR | all
#address,允许访问的客户端IP,不支持同时设置多个。如果有多个IP需要设置,需要重复使用allow指令
#CIDR,允许访问的客户端的CIDR地址,例如 172.10.10.1/100,前面是32位IP地址,后面“\25”代表该IP地址中前25位是网络部分,其余位代表主机部分。
#all,代表允许所有客户端访问。

从Nginx 0.8.22版本后,该命令也支持IPv6地址,比如:

allow 2620:100:e000::8001;

deny指令,与allow正好相反,用于设置禁止访问Nginx客户端IP

deny address | CIDR | all;

这两个指令可以在http块、server块或者location块中配置。

1 location / {
2     deny 192.168.1.1;
3     allow 192.168.1.0/24;
4     deny all;
5 }

在以上例子中192.168.1.0/24客户端是可以访问的。因为,Nginx配置在解析的过程中,遇到deny指令或者allow指令是按照顺序对当前客户端的连接进行访问权限检查的。如果遇到匹配的配置时,则停止继续向下搜索相关配置。因此,当192.168.1.0/24客户端访问时,Nginx在第三行解析配置发现允许该客户端访问,就不会继续向下解析第4行了。


基于密码配置Nginx的访问权限

Nginx 还支持基于HTTP Basic Authentication 协议的认证。该协议是一种 HTTP 性质的认证办法,需要识别用户名和密码,认证失败的客户端不拥有访问Nginx服务器的权限。该功能由 HTTP 标准模块 ngx_http_auth_basic_module 支持,这里有两个指令需要学习。

auth_basic指令,用于开启或者关闭该认证功能,语法结构为:

auth_basic string | off;

其中,file为密码文件的绝对路径。

这里的密码文件支持明文或者密码加密后的文件。明文的格式如下所示:

1 name1:password1
2 name2:password2:comment
3 name3:password3

加密密码可以使用crypt()函数进行密码加密的格式,也可使用htpasswd命令生成:

htppasswd d:\nginx\conf\htpasswd username

myzhao是认证的账户名称,需要输入两次密码,然后htppasswd文件中保存的就是加密后的密码:

htppasswd(第三个冒号后可做注释也可没有):

myzhao:$apr1$JAVltvyq$4k0V5tWy0Ec0JI5eiZrfJ.:123456

5、6两行此次新增的配置:

1 location /software {
2     autoindex on;
3     autoindex_exact_size off;
4     autoindex_localtime on;
5     auth_basic            "Restricted";
6     auth_basic_user_file  htpasswd;
7 }
时间: 2024-10-26 09:12:20

Nginx配置访问权限的相关文章

nginx配置访问频率

nginx可以通过limit_conn_zone和limit_req_zone两个组件来限制客户端访问服务端的目录和文件的频率和次数,能够抵挡住部分cc.ddos攻击. 限制访问频率: http{ ... #定义一个名为allips的limit_req_zone用来存储session,大小是10M内存, #以$binary_remote_addr 为key,限制平均每秒的请求为20个, #1M能存储16000个状态,rete的值必须为整数, #如果限制两秒钟一个请求,可以设置成30r/m lim

nginx配置访问限制

nginx官方文档:http://nginx.org/en/docs/ 本次使用到的模块是:ngx_http_limit_req_module  主要配置如下: ### http区域 limit_req_log_level info; limit_req_status 400; limit_req_zone $remote_addr zone=req_limit_per_ip:1m rate=1r/m; ### server或location区域(支持反代) limit_req zone=req

nginx配置访问xx.com跳转www.xx.com

二.在nginx里面配置 rewrite 规则.打开 Nginx.conf 文件找到server配置段:[以下是我的server配置段] 禁止IP地址访问 server{ listen 80 default_server; server_name _; return 403; } 禁止IP地址访问 server { listen 80; server_name www.xxx.com xxx.com; if ($host != 'www.xxx.com') { rewrite ^/(.*)$ h

使用nginx配置带有权限验证的反向代理

环境:centos6u3 1.安装nginx (1)上传nginx nginx-1.14.0.tar.gz.可以从nginx官网下载http://nginx.org/en/download.html (2)解压 tar zxvf nginx-1.14.0.tar.gz (3)安装依赖包: yum install gcc gcc-c++ glibc automake pcre zlip zlib-devel openssl-devel pcre-devel wget lrzsz (4)配置账号:

nginx配置访问https[自签版]

通过openssl生成证书 (1)设置server.key,这里需要设置两遍密码: openssl genrsa -des3 -out server.key 1024 (2)参数设置,首先这里需要输入之前设置的密码: openssl req -new -key server.key -out server.csr 然后需要输入如下的信息 Country Name (2 letter code) [AU]: 国家名称 State or Province Name (full name) [Some

为Druid监控配置访问权限(配置访问监控信息的用户与密码)

Druid是一个强大的新兴数据库连接池,兼容DBCP,是阿里巴巴做的开源项目. 不仅提供了强悍的数据源实现,还内置了一个比较靠谱的监控组件. GitHub项目主页: https://github.com/alibaba/druid QQ群:  点击链接加入群[阿里开源技术交流] 演示地址: http://cncounter.duapp.com/druid/index.html 常见问题回答请参考: https://github.com/alibaba/druid/wiki/%E5%B8%B8%E

ES,kibana通过nginx添加访问权限

一.安装nginx yum install epel-release -y yum install -y nginx 二.安装Apache Httpd 密码生成工具 $ mkdir -p /usr/local/nginx/conf/passwd $ htpasswd -c -b /usr/local/nginx/conf/passwd/kibana.passwd zhanghao mima 三.配置Nginx反向代理 #查看nginx配置文件位置 nginx -t #编辑nginx vim /e

nginx 配置访问正则匹配

server{ listen 80; server_name api.zyy.com; root /var/www/api_zyy; index index.php; location ~ /assets/ {# access_log logs/static.log common; #设置静态内容有效期 并且重定向到static expires 1y; rewrite ^/static/(.*)$ /static/$1 break; } location ~ /static/ {# access

使用nginx和iptables做访问权限控制(IP和MAC)

之前配置的服务器,相当于对整个内网都是公开的 而且,除了可以通过80端口的nginx来间接访问各项服务,也可以绕过nginx,直接ip地址加端口访问对应服务 这是不对的啊,所以我们要做一些限制 因为只是对特定的人提供服务,而且局域网IP和MAC都是固定的,所以可以直接用白名单,其他的全部拒绝 /**************************************使用nginx做访问权限控制*********************************/ 先在nginx做设置 在/et