關于Basic Authorization
在HTTP中,Basic Authorization基本認證是一種用來允許Web瀏覽器或其他客戶端程序在請求時提供用戶名和口令形式的身份憑證的一種登錄驗證方式。
在發送之前是以用戶名追加一個冒號然后串接上口令,并將得出的結果字符串再用Base64算法編碼。例如,提供的用戶名是Aladdin、口令是open sesame,則拼接后的結果就是Aladdin:open sesame,然后再將其用Base64編碼,得到QWxhZGRpbjpvcGVuIHNlc2FtZQ==。最終將Base64編碼的字符串發送出去,由接收者解碼得到一個由冒號分隔的用戶名和口令的字符串。
雖然對用戶名和口令的Base64算法編碼結果很難用肉眼識別解碼,但它仍可以極為輕松地被計算機所解碼,就像其容易編碼一樣。編碼這一步驟的目的并不是安全與隱私,而是為將用戶名和口令中的不兼容的字符轉換為均與HTTP協議兼容的字符集。
優點:
下面我們就來正式看一下如何在Nginx上配置一個Basic Auth認證的下載服務:
建用戶和文件夾
新建用戶 shareuser:
建data文件夾,并
chown -R shareuser:shareuser /path/to/data
列出指定目錄下的文件:
需要的指令是autoindex on;, 即可列出該目錄下的所有文件并可以遞歸計入子目錄。
還有兩個輔助的指令
配置Basic Auth
兩個指令
auth_basic_user_file是一個存儲用戶名密碼的文件。需要htpasswd命令來生成,
密碼文件生成
首先需要安裝
sudo apt-get install apache2-utils
命令
htpasswd -c /path/to/passwd username
-c 是新建一個文件, 如果是append到已有文件,不用該選項。
根據提示輸入密碼即可。
Config Sample
測試項目文件結構如下:
app conf nginx.conf passwd data
最終的結果如下:
user shareuser; server { listen 8011; root data; # index index.html index.htm; #關閉index, 否則會顯示index.html而不是列出文件 location / { autoindex on; autoindex_exact_size off; autoindex_localtime on; auth_basic "Restricted"; auth_basic_user_file passwd; } }}
啟動
nginx -p /path/to/app -c conf/nginx.conf
即可訪問。
新聞熱點
疑難解答