Nginx 設定密碼保護目錄

在 Apache 設定密碼保護目錄會使用 .htpasswd 這種檔案,在 Nginx 有提供 auth_basic 模組,設定也很方便,以下是 Nginx 設定密碼保護目錄的方法。

首先建立儲存使用者名稱及加密密碼的檔案 .htpasswd,可以用 htpasswd 指令完成,以下會設定使用者名稱是 username,密碼檔放在 /var/www/domain.com/member/ 目錄下面:

# htpasswd -c /var/www/domain.com/member/.htpasswd username

然後會出現提示,要求設定密碼。

如果系統內沒有安裝 htpasswd,可以手動建立這個檔案,每個使用者一行紀錄。

在手動建立密碼檔前,需要先用 Perl 的 crypt 函式取得加密密碼的字串,執行以下指令:


然後系統會印出加密了的密碼,將這個密碼複製,放入 .htpasswd 檔案:

# vi /var/www/domain.com/member/.htpasswd

加入以下內容:

username:encrypted-password

上面的 encrypted-password 是前面用 Perl 執行的結果。

建立好 .htpasswd 密碼檔案,便要設定 Nginx,將 /var/www/domain.com/member 目錄加入密碼保護:

最後重新啟動 Nginx:

# systemctl restart nginx

# service nginx restart

之後當存取 member/ 目錄時,便會彈出輸入使用者名稱及密碼的提示。




Leave a Reply