天天看點

Nginx 目錄或 網站加密認證

如果要對 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了

繼續閱讀