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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM