Nginx 是一款免費、開源的網頁伺服器,用於 負載平衡、緩衝和快取。自 2004 年問世以來,Nginx 因擴充網頁伺服器和反向代理而廣受歡迎。由於其高效能和處理大量連線的卓越能力,它被用於管理和控制傳入的流量。
HTTP 驗證是如何運作的?
在 基本 HTTP 驗證 中,伺服器上的所有路由都會被阻擋,並需要適當的憑證進行驗證。每當使用者嘗試存取受保護的資源時,伺服器會向使用者傳送一個 WWW-Authenticate 標頭 和一個 401 Unauthorized 回應。如果使用者使用的使用者名稱和密碼正確,且與 金鑰檔案 相符,則建立連線,否則拒絕連線。
在本教學中,我們將引導您完成 在 Ubuntu 20.04 上使用 Nginx 設定基本 HTTP 驗證.
先決條件
要繼續本教學,您需要以下準備:
- 已安裝最新版本的 Ubuntu 於您的系統中。
- 系統使用者必須擁有 sudo 權限.
- 已在您的伺服器上安裝並設定 Nginx。
步驟 1:更新軟體套件庫
在系統上安裝任何新軟體或 API 套件之前,請重新整理套件庫以避免錯誤或任何套件衝突。首先,我們將使用 sudo 指令來更新軟體:
|
1 |
sudo apt-get update |
現在我們已經更新了軟體套件庫,讓我們來安裝必要的 apache2 套件。
步驟 2:安裝必要套件
由於我們正在為目錄設定 HTTP 驗證,我們將使用 htpasswd 指令來建立加密密碼。請使用以下指令安裝 apache2-utils 套件:
|
1 |
sudo apt-get install apache2-utils |
步驟 3:建立使用者與密碼
在此步驟中,我們將設定基本 HTTP 驗證憑證。在根目錄下,建立一個與該使用者關聯的 .htpasswd 檔案。密碼將會被加密,檔案名稱可以任您選擇。使用以下指令建立檔案並新增具有加密密碼的使用者:
|
1 |
sudo htpasswd -c /etc/nginx/.htpasswd cloudsigma |

接下來,使用以下指令驗證新建立的檔案:
|
1 |
cat /etc/nginx/.htpasswd |
步驟 4:更新 Nginx 設定
一旦我們有了 HTTP 基本驗證憑證,讓我們設定 Nginx 並在目標網站上使用它。我們需要 auth_basic 和 auth_basic_user_file 指令來建立 HTTP 基本驗證。 auth_basic 指令的值是字串格式,而 auth_basic_user_file 是在 步驟 3.
中建立的密碼檔案路徑。將這兩個指令包含在目標網站的設定檔中非常重要。您可以在 /etc/nginx/sites-available 目錄中找到目標網站的位置。使用 nano 編輯器開啟設定檔:
|
1 |
sudo nano /etc/nginx/sites-available/default |
然後,將這兩個指令新增到 location 區段下:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
. . . server_name localhost; location / { # 嘗試先將請求作為檔案提供,然後 # 作為目錄,否則退回顯示 404。 try_files $uri $uri/ =404; # 取消註釋以在此位置啟用 naxsi # include /etc/nginx/naxsi.rules auth_basic "Private Property"; auth_basic_user_file /etc/nginx/.htpasswd; } . . . |
新增指令後,儲存並關閉設定檔。
步驟 5:重新啟動 Nginx
接下來,重新載入或重啟 Nginx 服務以在我們的虛擬主機上套用變更。之後,我們將嘗試使用基本 HTTP 驗證來存取受保護的網域。使用以下命令來啟用 Nginx 服務:
|
1 |
sudo service nginx reload |
步驟 6:安全網頁存取
重新啟動 Nginx 後,下一步是嘗試在您喜愛的瀏覽器中存取 IP 地址或網域名稱。點擊 IP 地址 http://your_domain_name/ 在您的瀏覽器中,將會彈出一個視窗要求您輸入憑據進行驗證。輸入正確的使用者名稱和密碼後,您將會看到預設的 Nginx 首頁。
結論
在本教學中,我們學習了如何使用 Nginx 設定基本 HTTP 驗證。基本的使用者名稱/密碼驗證只是在 Nginx 中建立安全連線的眾多驗證選項之一。
還有其他用於伺服器驗證的強大選項。例如,您可以使用的一些熱門方法包括 API 整合、JSON Web Tokens、基於 SSH 金鑰的驗證。儘管最初獲得強大的安全機制似乎有些棘手,但它們在保護您的隱私方面非常有效。
此外,還有許多其他關於 Nginx 的學習材料和教學,您可以從我們的部落格:
- Nginx 伺服器與 Location 區塊選擇演算法概述
- 在 Ubuntu 20.04 上安裝與設定 Laravel 搭配 Nginx
- 在 Ubuntu 20.04 上設定 Django 搭配 PostgreSQL、Nginx 和 Gunicorn
祝您運算愉快!

留言
目前尚無留言。成為第一個留言的人吧。