在某些特定的環境下,咱們但願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網站密碼認證保護的功能。加密