天天看點

nginx讓使用者通過使用者名密碼認證通路web頁面

在使用nginx轉發的時候,要進行一次使用者身份的确認。

1)通過htpasswd指令生成使用者名及對應密碼資料庫檔案

[root@localhost]# htpasswd -c /usr/local/nginx/passwd.db zutnlp  //建立認證資訊,zutnlp  為認證使用者名 
New password: *******  //輸入認證密碼 
Re-type new password: ********  //再次輸入認證密碼 
Adding password for user zutnlp 
[root@localhost]# chmod 755 /usr/local/nginx/passwd.db  //修改網站認證資料庫權限 
[root@localhost]# chown root:root /usr/local/nginx/passwd.db  //修改網站認證資料庫屬主和屬組 
[root@localhost]# cat /usr/local/nginx/passwd.db  //可以看到通過htpasswd生成的密碼為加密格式 
wyl:r3IXSXWSmlBk6
           

htpasswd是Apache下面的指令,如果沒有安裝Apache可以利用線上工具生成

如:

http://tool.oschina.net/htpasswd

pass.png

生成好後編輯檔案,将結果寫入檔案

vim  /usr/local/nginx/passwd.db
           

2)編輯虛拟主機配置檔案。

[root@localhost]# vim /usr/local/nginx/conf/nginx.conf //主配置檔案中http字段中添加以下語句

server {
     listen       8090;
     server_name  localhost;

     client_max_body_size    151m;

   location / {
         auth_basic "s1";  #虛拟主機認證命名 
         auth_basic_user_file /usr/local/nginx/passwd.db; #虛拟主機使用者名密碼認證資料庫     
         #proxy_pass http://10.0.0.10:9011;  #nginx 通路
     root   html;
            index  index.html index.htm; 
}
}