Nginx上配置Basic Authorization登錄認服務證的教程
關(guān)于Basic Authorization
在HTTP中,Basic Authorization基本認證是一種用來允許Web瀏覽器或其他客戶端程序在請求時提供用戶名和口令形式的身份憑證的一種登錄驗證方式。
在發(fā)送之前是以用戶名追加一個冒號然后串接上口令,并將得出的結(jié)果字符串再用Base64算法編碼。例如,提供的用戶名是Aladdin、口令是open sesame,則拼接后的結(jié)果就是Aladdin:open sesame,然后再將其用Base64編碼,得到QWxhZGRpbjpvcGVuIHNlc2FtZQ==。最終將Base64編碼的字符串發(fā)送出去,由接收者解碼得到一個由冒號分隔的用戶名和口令的字符串。
雖然對用戶名和口令的Base64算法編碼結(jié)果很難用肉眼識別解碼,但它仍可以極為輕松地被計算機所解碼,就像其容易編碼一樣。編碼這一步驟的目的并不是安全與隱私,而是為將用戶名和口令中的不兼容的字符轉(zhuǎn)換為均與HTTP協(xié)議兼容的字符集。
優(yōu)點:
- 使用非常簡單,
- 開發(fā)和調(diào)試工作簡單,
- 沒有復雜的頁面跳轉(zhuǎn)邏輯和交互過程;
- 更利于發(fā)起方控制。
下面我們就來正式看一下如何在Nginx上配置一個Basic Auth認證的下載服務:
建用戶和文件夾
新建用戶 shareuser:
建data文件夾,并
chown -R shareuser:shareuser /path/to/data
列出指定目錄下的文件:
需要的指令是autoindex on;, 即可列出該目錄下的所有文件并可以遞歸計入子目錄。
還有兩個輔助的指令
- autoindex_exact_size on | off; , 即文件大小以字節(jié)數(shù)顯示還是K/M/G顯示
- autoindex_localtime on | off; 以local timezone還是UTC顯示文件的修改時間。
配置Basic Auth
兩個指令
- auth_basic "Restricted";
- auth_basic_user_file ./passwd;
auth_basic_user_file是一個存儲用戶名密碼的文件。需要htpasswd命令來生成,
密碼文件生成
首先需要安裝
sudo apt-get install apache2-utils
命令
htpasswd -c /path/to/passwd username
-c 是新建一個文件, 如果是append到已有文件,不用該選項。
根據(jù)提示輸入密碼即可。
Config Sample
測試項目文件結(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, 否則會顯示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
即可訪問。
相關(guān)文章
Nginx服務器實現(xiàn)通過ip和user_gent限制訪問的方法分析
這篇文章主要介紹了Nginx服務器實現(xiàn)通過ip和user_gent限制訪問的方法,結(jié)合實例形式分析了Nginx通過限制ip和user_gent限制訪問來過濾DDOS攻擊的相關(guān)操作技巧,需要的朋友可以參考下2019-07-07一篇文章快速掌握Nginx部署前端項目(Nginx安裝配置及部署都非常詳細!)
這篇文章主要給大家介紹了關(guān)于如何通過一篇文章快速掌握Nginx部署前端項目的相關(guān)資料,文中從Nginx安裝配置及部署都非常詳細哦,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2023-01-01