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

时间:2017-05-06 14:27:19

标签: nginx proxy

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

我用Google搜索了这两个关于使用Nginx代理基本身份验证的教程。我在本地主机中配置了Nginx服务器,然后重新启动。但它似乎不起作用。我可以在没有身份验证的情况下访问主机(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";
       }
  }

2 个答案:

答案 0 :(得分:6)

同样的问题。 这worked

echo -n "user:pass" | base64

而不是

echo "user:pass" | base64

答案 1 :(得分:0)

有用的是:

sbrk

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