Nginx中用于代理基本身份验证后端的授权标头不起作用

Ton*_*ang 1 proxy nginx

https://joshuarogers.net/passing-static-credentials-upstream-through-nginx http://shairosenfeld.blogspot.jp/2011/03/authorization-header-in-nginx-for.html

我用Google搜索了这两个关于使用Nginx代理基本身份验证的教程.我在本地主机中配置了Nginx服务器,然后重新启动.但它似乎不起作用.我可以在没有auth的情况下访问主机(http://10.211.55.12:5601http://10.211.55.12:80重定向到之前的同一页面).

" http://10.211.55.12:5601 "中的服务是Kibana,我想用auth来证明它.

  # Default server configuration
  #
  server {
      listen 80 default_server;
      listen [::]:80 default_server;
      server_name _;
      location / {
          proxy_set_header Host $host;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
          proxy_pass http://10.211.55.12:5601;
          proxy_set_header Authorization "Basic a2luZzppc25ha2Vk";
       }
  }
Run Code Online (Sandbox Code Playgroud)

小智 10

所做的工作是:

proxy_set_header  Authorization $http_authorization;
proxy_pass_header Authorization;
Run Code Online (Sandbox Code Playgroud)

$http_authorization是来自 UI 的令牌(似乎 Nginx 可以将其提取到变量中)。我发现您已经有了proxy_set_header,添加proxy_pass_header可能会有所帮助。


小智 6

同样的问题.这很有效

echo -n "user:pass" | base64

代替

echo "user:pass" | base64

  • 感谢您的回答,但对我不起作用。没有身份验证弹出窗口或其他任何内容需要我登录。 (2认同)