如何使用 Nginx 來做登入驗證。
一般我們會使用 PHP、Python、Ruby、Java 等等程式語言來開發網站,然後設計一個登入頁面來驗證登入的使用者,這些都必須透過程式執行才能辦到,這就是所謂的動態網頁。但是,有時候你的需求很簡單,你只是需要一個網站來放內容或檔案,但是不想公開它,在沒有使用動態網頁的情況下要怎麼做呢?
Nginx 內建了認證機制,只要簡單的設定,就能讓你的網站擁有登入管控的機制。
1. 設定帳號密碼
在 Nginx 根目錄/etc/nginx
建立 .htpasswd
檔,在其中建立可以登入的帳號。註:其中會使用
openssl
命令列工具,請確認是否已安裝。# 建立一個名為 tony 的帳號,記得要接著冒號
sudo sh -c "echo -n 'tony:' >> /etc/nginx/.htpasswd"
# 接著設定密碼,執行後會要求你輸入密碼,要輸入兩次一樣的密碼
sudo sh -c "openssl passwd -apr1 >> /etc/nginx/.htpasswd"
完成後可以來看看結果:cat /etc/nginx/.htpasswd
# 輸出的內容像這樣
tony:$apr1$wI1/A0nB$jEKuTJHkTOOWkopnXqC1d1
以上帳號密碼的部分就完成了。接著來設定 Nginx 的網站設定檔。2. 設定網站啟用登入驗證
打開你的網站設定檔:vim /etc/nginx/conf.d/xxx.com.conf
在網站中或子目錄中加入以下兩行:auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd;
其中 Restricted Content
這段話會顯示在對話框上,你可以自行修改。修改內容如下:
server {
listen 80 default_server;
listen [::]:80 default_server;
root /usr/share/nginx/html;
index index.html index.htm;
server_name localhost;
location / {
try_files $uri $uri/ =404;
# 針對整個網站
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd;
}
# 如果你只想對子目錄 /abc 做限制
location /abc/ {
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd;
}
}
存檔後就完成了。記得讓 Nginx 重載:nginx -s reload
之後開啟網頁就會出現密碼驗證的詢問框:參考資料:
How To Set Up Password Authentication with Nginx on Ubuntu 14.04
本文網址:https://blog.tonycube.com/2019/07/nginx-password-prompt.html
由 Tony Blog 撰寫,請勿全文複製,轉載時請註明出處及連結,謝謝 😀
由 Tony Blog 撰寫,請勿全文複製,轉載時請註明出處及連結,謝謝 😀
請問從android手機終將.sqlite的video檔案下載到PC上,如何觀看或轉乘mp4格式?
回覆刪除