zoukankan      html  css  js  c++  java
  • Nginx设置身份验证

      在某些情况下,需要对某些内容的访问进行限制,在Nginx中也提供了这样的限制措施,以下是几种常见的限制措施:

      1.访问身份验证

      在Nginx的插件模块中有一个模块ngx_http_auth_basic_module可以要求用户进行身份认证,默认情况下nginx已经安装了这个模块 。可通过命令./nginx -V查看是否有此模块。

      安装后只需要进行以下步骤即可实现:

      首先创建密钥文件:

      yum install -y httpd-tools
      htpasswd -bc /usr/nginx/conf/htpasswd.users username password
    cat /usr/nginx/conf/htpasswd.users

      配置nginx:

      server 
      {
          listen 80;
          server_name 192.168.1.1;
          auth_basic "Restricted Access";
          auth_basic_user_file /usr/nginx/conf/htpasswd.users;
          location / 
          {
              proxy_pass http://192.168.1.2:5601;
          }
      }

      配置完成后重启nginx服务即可。正常情况下会出现以下输入框输入设置的用户名和密码即可:

      

      

      2.限制IP访问

      在nginx.conf中添加以下配置可实现全局限制,也可将此配置放到server中或location中,放到server中只针对站点进行限制,location中只针对匹配的url进行限制:

      allow 192.168.1.1;  #允许的IP
      deny 192.168.1.2;   deny all;

      可添加多条allow或deny,deny all结尾表示除了上面allow的其他都禁止,deny all;deny 一定要加一个ip,否则直接跳转到403,下面的规则将不起作用。

      

      3.限制某些ip在同一时间段内的访问次数

      nginx可以通过HttpLimitReqModul和HttpLimitZoneModule配置来限制ip在同一时间段的访问次数.

      HttpLimitReqModul用来限制连单位时间内连接数的模块,使用limit_req_zone和limit_req指令配合使用来达到限制。一旦并发连接超过指定数量,就会返回503错误。HttpLimitConnModul用来限制单个ip的并发连接数,使用limit_zone和limit_conn指令.

      这两个模块的区别前一个是对一段时间内的连接数限制,后者是对同一时刻的连接数限制.

      园子里有作者已经有过详细介绍,请参考:https://www.cnblogs.com/aoniboy/p/4730354.html

  • 相关阅读:
    Java动态代理
    图解Python 【第七篇】:网络编程Socket
    我的FP感悟
    Scala微服务架构 三
    Scala微服务架构 二
    Scala微服务架构 一
    一篇入门 -- Scala
    基于DobboX的SOA服务集群搭建
    hadoop 异常及处理总结-01(小马哥-原创)
    使用Eclipse的几个必须掌握的快捷方式(能力工场小马哥收集)
  • 原文地址:https://www.cnblogs.com/silent2012/p/8377837.html
Copyright © 2011-2022 走看看