#Nginx请求限制 #limit_conn_module 连接频率限制 #定义: Syntax: limit_conn_zone key zone=name:size; Default: —— Context:http #使用: Syntax: limit_conn zone number; Default: ——; Context:http,server,location
#limit_req_module 请求频率限制
#定义 Syntax: limit_req_zone key zone=name:size rate=rate; Default: —— Context:http #使用 Syntax: limit_req zone [burst=number][nodekay]; Default: —— Context:http,server,location
#例: #定义连接频率限制 客户端ip地址 名字:大小 #limit_conn_zone $binary_remote_addr zone=conn_zone:1m; #定义请求频率限制 客户端ip地址 名字:大小 速率 #limit_req_zone $binary_remote_addr zone=req_zone:1m rate=1r/s; # location / { # root /opt/app/code; # limit_conn conn_zone 1; # burst=3 超过请求个数,遗留3个请求到下一秒请求 nodelay:其他直接返回 # #limit_req zone=req_zone burst=3 nodelay; # #limit_req zone=req_zone burst=3; # #limit_req zone=req_zone; # index index.html index.htm; # }
#----------------------------------------------------------------------------------------- #Nginx访问控制 #-http_access_module 基于IP的访问控制 #允许配置 Syntax: allow address|CIDR|unix:|all; Default: —— Context:http,server,location,limit_except;
#禁止配置 Syntax: deny address|CIDR|unix:|all; Default: —— Context:http,server,location,limit_except;
#例1禁止222.128.189.17: # location ~ ^/admin.html { # root /opt/app/code; # deny 222.128.189.17; # allow all; # index index.html index.htm; # }
#例2只允许222.128.189.0/24: # # location ~ ^/admin.html { # root /opt/app/code; # allow 222.128.189.0/24; # deny all; # index index.html index.htm; # }
#http_auth_basic_module局限性 #方法一、采用别的HTTP头信息控制访问,如http_x_forward_for #方法二、结合geo模块 #方法三、通过HTTP自定义变量传递
#-http_auth_basic_module 基于用户的信任登录 #配置 Syntax: auto_basic string|off; Default: auto_basic off; Context:server,location,limit_except;
Syntax: auto_basic_user_file file; Default: —— Context:http,server,location,limit_except;
#使用步骤: #1.生成用户名密码配置文件 :htpasswd -c ./auth_conf name #2.配置: # location ~ ^/index1.html { # root /usr/share/nginx/html; # 提示信息 # auth_basic "Auth access test!"; # 密码文件 # auth_basic_user_file /etc/nginx/auth_conf; # index index.html index.htm; # }
#http_auth_basic_module局限性 #1.用户信息依依赖文件方式 #2.操作管理机械,效率低下 #解决方案 #.Nginx结合LUA实现高效验证 #.Nginx和LDAP打通,利用nginx-auth-ldap模块