Nginx 設定目錄密碼保護

在 Apache 要設定密碼保護目錄, 可以用 .htaccess 及 .htpasswd 實現, 但在 Nginx 不支援 .htaccess..

以下是 Nginx 設定密碼保護目錄的方法。

1. 建立使用者名稱及密碼

首先需要建立一個密碼檔, 裡面包含了使用者名稱, 以及加密了的密碼, 如果系統有安裝 Apache, 可以用以下語法建立密碼檔:

# htpasswd -c /path/to/file/.htpasswd username

然後跟著指示設定密碼即可。

但如果沒有 htpasswd 指令可以使用, 那便要手動建立密碼檔, 但也是很簡單的。密碼檔的格式如下:

username:encrypted-password:comment

上面的 username 是使用者名稱, 可以自行定義, 而 encrypted-password 則是加密的密碼, 以下是用 perl 建立加密密碼的指令:

上面設定指令會輸出 “your-password” 的加密密碼, 請按需要自行修改密碼, 然後指令會輸出加密的密碼, 上面的例子是 “saoYYKpu2QSsA”


現在建立密碼檔:

# vi /home/opencli/.htpasswd

將要設定的使用者名稱及上面的加密密碼複製到檔案, 即以下格式:

儲存檔案後離開文字編輯器。

現在開啟 Nginx 的設定檔設定, 以下假設檔案在 /etc/nginx/conf.d/default.conf:

# vi /etc/nginx/conf.d/default.conf

假設我要設定密碼保護的目錄是 /usr/share/nginx/html/admin, 在 server 段落加入以下幾行:

上面的 “/admin/” 表示主機下的 admin 目錄, 預設即 /usr/share/nginx/html/admin, 如果想整個網站也要密碼保護, 改成 “location /” 即可.

儲存檔案後需要重新啟動 Nginx:

# systemctl restart nginx

現在再次進入網站的 /admin 目錄, 便會要求輸入使用者名稱及密碼。



你可能感興趣的內容:

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.