nginx如何設(shè)置實現(xiàn)訪客用戶身份驗證
當(dāng)前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
NGINX 能夠?qū)蛻舳诉M(jìn)行身份驗證。使用 NGINX 對客戶端請求進(jìn)行身份驗證可以減輕服務(wù)器的工作負(fù)載,并能夠阻止未經(jīng)身份驗證的請求到達(dá)應(yīng)用服務(wù)器。NGINX 開源版模塊包括基本身份驗證和身份驗證子請求。NGINX Plus 專有的 JSON Web Tokens(JWT)驗證模塊可與使用身份驗證標(biāo)準(zhǔn) OpenID Connect 的第三方身份驗證提供商集成 本例子演示都是NGINX開源版 HTTP 基本身份驗證 NGINX可以理解如下的密碼格式:
使用openssl passwd 對字符串進(jìn)行加密: 1、安裝openssl后,在命令行執(zhí)行如下命令:
2、在conf.d目錄下創(chuàng)建passwd.txt,將用戶名和密碼寫入,如圖: 注:openssl passwd生成的密碼是針對當(dāng)前用戶的,我在root下執(zhí)行,因此用戶就是root 3、編輯nginx.conf,給server模塊添加認(rèn)證,如圖:
4、通過IP訪問NGINX,提示輸入賬號密碼,如圖: 使用htpasswd來配置用戶名和密碼: 除了openssl passwd外,還可以使用htpasswd來設(shè)置用戶名和密碼 1、安裝htpasswd,命令如下:
2、執(zhí)行htpasswd命令生成用戶名和密碼文件,testuser是用戶名,如圖: 3、將/root/passwd.txt內(nèi)容粘貼到conf.d/passwd.txt中,如圖: 4、再次登錄NGINX,提示輸入用戶名和密碼,如圖: 輸入后即可登錄到頁面 注意:auth_basic認(rèn)證可使用在http、server、location中,針對不同場景認(rèn)證 身份驗證內(nèi)部子請求 通過第三方身份驗證來對請求進(jìn)行身份驗證,需要用到的模塊為http_auth_request_module,此模塊默認(rèn)不帶,需要在編譯安裝的時候通過如下方式指定:
1、在conf.d下定義auth.conf文件,內(nèi)容如下:
原理:首先請求進(jìn)來后,先到達(dá)子請求/authservice,子請求的認(rèn)證服務(wù)為http://192.168.49.83:8989/auth,如果子請求返回的狀態(tài)碼為2xx,表示請求成功,然后繼續(xù)后面的root /usr/share/nginx/html,如果返回3xx或者4xx等,則表示請求不成功,認(rèn)證不通過 2、編輯auth_8989.conf文件,定義路由返回狀態(tài)碼為200,內(nèi)容如下: 3、通過IP訪問,如圖: 4、修改第2步,將返回狀態(tài)碼修改為401,再次請求,如圖: 從上圖看出,當(dāng)子請求返回狀態(tài)碼不是2xx的時候,認(rèn)證就會失敗。 閱讀原文:原文鏈接 該文章在 2025/7/1 23:18:25 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |