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

在某些特定的環境下,咱們但願nginx下的web站點在訪問時須要用戶輸入帳戶密碼才能訪問。以便拒絕那些不速之客。html

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

1、編輯虛擬主機配置文件。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; //虛擬主機用戶名密碼認證數據庫 
      } 
      #省略其餘配置
      ....
}

 

 

2、經過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

3、從新啓動nginx便可生效。網站

service nginx reload

 

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

相關文章
相關標籤/搜索