Nginx 作为正向代理和身份验证

Nginx 作为正向代理和身份验证

我想要建立一个环境,在其中我可以有一个简单的暗示,可以通过使用代理和应用程序 nginx 的正向代理来访问。

我的两个 nginx 都是 docker 容器。

首先这是应用程序的 nginx.cong

events { }

http {
  server {
    auth_basic "Restricted Content";
    auth_basic_user_file /etc/nginx/.htpasswd;
    root /doc;
    location / {

    }
  }
}

它与我设置的用户密码配合得很好。我可以通过一个简单的 curl 命令来访问它

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_proxy:password_proxy。

我不知道如何设置代理以正确使用正确的用户:密码作为身份验证。

提前致谢。

相关内容