1. 程式人生 > >Nginx實現代理和用戶驗證

Nginx實現代理和用戶驗證

我們 redirect 無需 def 監聽端口 download 文件 cal nginx

1.下載Nginx

首先去官網http://nginx.org/en/download.html下載需要的版本即可,無需安裝,只需要打開nginx.exe文件,nginx.exe的服務就開啟了。打開http://localhost/就可以看到nginx啟動成功的信息。默認情況下nginx已經安裝了ngx_http_auth_basic_module模塊。

2.配置server

打開nginx.conf文件中,增加一個server的監控,代碼如下:

server {
#監聽端口號
listen 8081;
auth_basic "config Auth";
#密碼地址
auth_basic_user_file D:\config.password;
location / {
   #代理地址
proxy_pass http://192.168.21.1:8088/;
proxy_redirect default;
}
}
其中auth_basic_user_file可以使用htpasswd,或者使用openssl,htpasswd可以使用apach2-utils在linux生成。
添加完成之後,重新啟動Nginx服務,這是打開相應的網站,就會彈出一個這樣的輸入框,輸入響應的用戶名和密碼,即可訪問網站。
技術分享

輸入相應的用戶名和密碼,即可訪問網站。

3.401 Authorization Required問題

現在能訪問靜態頁面,但是請求數據的接口會返回一個401 Authorization Required的錯誤回來,如下圖,

技術分享

這是由於接口沒有配置相應的Authorization header,所以我們需要在請求的接口配置Authorization header,格式為‘Basic ’+用戶名:密碼,用戶名:密碼需要使用base64加密下,代碼如下,

‘Authorization‘:"Basic "+Base64.encode("test:123")
請求效果如下:

技術分享

如果需要修改密碼或是用戶名,替換auth_basic_user_file 文件就可以了

Nginx實現代理和用戶驗證