比如要對 網站目錄下的 test 文件夾 進行加密認證
首先需要創建一個密碼文件 例如 /root/pwd
此文件的書寫格式是
用戶名:密碼
每行一個賬戶
並且 密碼必須使用函數 crypt(3) 加密
可以使用perl 為密碼加密 新建 一個 pwdgen.pl 文件 其內容:
#!/usr/bin/perl use strict; my $pw=$ARGV[0] ; print crypt($pw,$pw)."\n";
然后執行 chmod +x pwdgen.pl
./pwdgen.pl spring123
spmBrZxsgt/pM
spmBrZxsgt/pM 就是spring123的crypt()密碼
然后 將上面用 perl 生成的 加密后的密碼
按照
用戶名:密碼
的格式寫到 pwd文件中
密碼文件生成好后,在 nginx.conf 文件中對應的 server 段中 添加如下紅色的內容
server {
listen 99;
ssi_types *;
ssi_silent_errors off;
server_name localhost;
auth_basic "Welcome to Kepler Admin!";
auth_basic_user_file /root/password/pwd;
location / {
ssi on;
root /root/kepler/admin-console;
}
location /api {
proxy_pass http://10.128.8.88:8080/kepler-collector-admin;
}
}
如果想限制某一個目錄的話需要如下配置:
location ^~ /root/kepler/admin-console/ {
auth_basic "TEST-Login!";
auth_basic_user_file /root/password/pwd;
}
如果 不用 ^~ /root/kepler/admin-console/ 而用 /root/kepler/admin-console 的話 那么將只能對目錄進行驗證,如果直接訪問其下的文件,將不會彈出登錄驗證
重啟Nginx服務,使配置生效