如果要對 images檔案夾 進行加密認證
首先應該建立一個密碼檔案,目錄和 檔案名字尾名 自己定,我們這裡就用 web.pass,這個檔案的格式如下:
使用者名:密碼
多這個賬戶需要用換行隔開(一個帳号一行)
并且密碼必須使用函數 crypt(3) 加密,使用者名不需要加密
可以用 Apache 的 htpasswd 工具來建立密碼檔案
/usr/bin/htpasswd -c /usr/local/nginx/conf/pw.pass admin
New password: (輸入密碼)
Re-type new password: (再次輸入密碼)
Adding password for user ngin
或者:
/usr/bin/htpasswd -nb user passwd
如果執行 htpasswd -c /usr/local/nginx/conf/pw.pass admin 出現下面錯誤的話
-bash: htpasswd: command notfound
就需要安裝 httpd,或者用 perl方式了
安裝 httpd 方法如下:
yum install httpd
安裝完成後,在執行密碼生成指令就可以。
生成使用者密鑰檔案為pw.pass使用者名為admin密碼為(自己輸入的密碼)
也可以使用perl 建立密碼檔案 建立 一個 pw.pl 檔案 其内容:
#!/usr/bin/perl
use strict;
my $pw=$ARGV[0] ;
print crypt($pw,$pw)."\n";
然後執行 chmod +x pw.pl
./pw.pl password
papAq5PwY/QQM
papAq5PwY/QQM 就是password 的crypt()密碼
然後 将上面用 perl 生成的 加密後的密碼
按照 使用者名:密碼 的格式寫到 pw.pass 檔案中(寫的時候使用者名可以随意填寫,隻要自己記住就可以了。密碼是 上面執行輸出的:papAq5PwY/QQM)
密碼必須使用函數 crypt(3) 加密
密碼檔案生成好後,在 nginx.conf 檔案中對應的 server 段中 添加如下内容
auth_basic "input username and password!";
auth_basic_user_file /usr/local/nginx/conf/pw.pass;
限制某一個目錄的話需要如下配置:
location ^~ /images/ {
auth_basic "TEST-Login!";
auth_basic_user_file /opt/nginxpwd;
}
如果 不用 ^~ /images/ 而用 /images 的話 那麼将隻能對目錄進行驗證直接通路其下的檔案,将不會彈出登入驗證
配置好之後 重新開機nginx 就 ok了