我想建立一個環境,在該環境中我將有一個簡單的含義,可以透過用於代理和應用程式 nginx 的轉發代理進行存取。
我的兩個 nginx 都是 docker 容器。
首先這是應用程式的 nginx.cong
events { }
http {
server {
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd;
root /doc;
location / {
}
}
}
它與我設定的用戶名:密碼一起工作正常。我可以透過簡單的curl命令存取它
捲曲 -u 使用者名稱:密碼http://172.18.0.1:8184/test.csv
現在,我使用此配置設定代理
events { }
http {
server {
auth_basic "BLABLABLA";
auth_basic_user_file /etc/nginx/.htpasswd;
listen 8185;
location / {
proxy_pass http://$http_host$uri$is_args$args;
proxy_pass_request_headers on;
}
}
}
我嘗試使用此代理執行此命令再次訪問第一個應用程式
curl -x 127.0.0.1:8185 -U 用戶代理:密碼代理 -u 用戶:密碼http://172.18.0.1:8184/test.csv
但它返回401。
在日誌中,我看到代理正在讀取應用程式的 user:password,而不是作為 user_proxy:password_proxy 提供的密碼。
我不知道如何設定代理以正確使用正確的使用者:密碼作為身份驗證。
提前致謝。