如何在nginx下實現訪問web網站密碼認證保護的功能


在某些特定的環境下,我們希望nginx下的web站點在訪問時需要用戶輸入賬戶密碼才能訪問。以便拒絕那些不速之客。

其實,配置起來也很簡單,按照下面的步驟即可實現。

一、編輯虛擬主機配置文件。

server { 
     listen       80;  //監聽端口為80 
     server_name  www.abc.com;  //虛擬主機網址 
     location / { 
            root   sites/www1;  //虛擬主機網站根目錄 
            index  index.html index.htm;  //虛擬主機首頁 
            auth_basic "secret";  //虛擬主機認證命名 
            auth_basic_user_file /usr/local/nginx/passwd.db; //虛擬主機用戶名密碼認證數據庫 
      } 
      #省略其他配置
      ....
}

 

 

二、通過htpasswd命令生成用戶名及對應密碼數據庫文件。

[root@localhost /]#mkdir /usr/local/nginx
[root@localhost /]#vi /usr/local/nginx/passwd.db
[root@localhost /]# htpasswd -c /usr/local/nginx/passwd.db admin  //創建認證信息,admin 為認證用戶名 
New password: *******  //輸入認證密碼 
Re-type new password: ********  //再次輸入認證密碼 
Adding password for user admin 
[root@localhost /]# chmod 400 /usr/local/nginx/passwd.db      //修改網站認證數據庫權限 
[root@localhost /]# chown nginx.  /usr/local/nginx/passwd.db  //修改網站認證數據庫屬主和屬組
[root@localhost /]# cat /usr/local/nginx/passwd.db            //可以看到通過htpasswd生成的密碼為加密格式
admin:x/J1o94NgIV2k

三、重新啟動nginx即可生效。

service nginx reload

 

通過上面的三個步驟即可完成在nginx下實現訪問web網站密碼認證保護的功能。

 


免責聲明!

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



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