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