nginx做簡單的登錄認證


比如要對 網站目錄下的 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服務,使配置生效


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM