Nginx作為高效能的Web伺服器,可以作為反向代理伺服器,對外提供快速、穩定的服務。在反向代理中,Nginx需要連接到內部的Web伺服器來取得請求資源,此時涉及到Web伺服器的認證機制。
Web伺服器的認證一般分為基本認證和摘要認證兩種方式。基本認證是指使用者透過輸入使用者名稱和密碼來驗證身份,伺服器將這些資訊進行驗證後才允許存取資源。而摘要認證則是指在使用者要求資源時,伺服器傳回一些隨機數值,客戶端透過對這些值進行加密後再要求資源,伺服器透過對客戶端提供的加密資訊進行解密驗證身分。
在反向代理程式中,Nginx需要對接的Web伺服器也需要進行以上的認證措施。這時,我們可以透過在Nginx設定檔中設定代理驗證來實現對Web伺服器的認證:
auth_basic "Input your username and password"; auth_basic_user_file /etc/nginx/conf.d/conf/auth.conf;
auth_basic表示啟用驗證機制並在輸入方塊中提示使用者輸入使用者名稱和密碼,
auth_basic_user_file則表示指定使用者名稱及密碼存放的文件,這裡我們設定在
/etc/nginx/conf.d/conf/auth.conf中。
htpasswd -c /etc/nginx/conf.d/conf/Password username
-c參數表示首次新增用戶,username則是用戶名,執行以上指令後會讓您輸入密碼,完成後會在
Password檔案中產生一個使用者及密碼。
htpasswd /etc/nginx/conf.d/conf/Password user2
auth_digest "Please Login"; auth_digest_user_file /etc/nginx/conf.d/conf/auth_digest.conf;
auth_digest表示啟用驗證機制並在輸入框中提示使用者輸入使用者名稱和密碼,
auth_digest_user_file則表示指定使用者名稱及密碼存放的文件,這裡我們設定在
/etc/nginx/conf.d /conf/auth_digest.conf中。
user1:PasswordRealm:2da86e1b3a8a5511c400d00737a7a233
user1為使用者名,
PasswordRealm為密碼和加密隨機數值所對應的領域名稱組合而成,
2da86e1b3a8a5511c400d00737a7a233則是加密所得的密文。
以上是Nginx反向代理程式中Web伺服器的認證機制的詳細內容。更多資訊請關注PHP中文網其他相關文章!