【问题标题】:NGINX to pass digest authorization to ApacheNGINX 将摘要授权传递给 Apache
【发布时间】:2015-02-20 19:57:51
【问题描述】:

我在 Apache 前面有一个 NGINX,它同时开启了 Basic 和 Digest 身份验证。我想要一个用户连接到 NGINX(使用 Basic 或 Digest)的设置,NGINX 只是将请求代理到发生实际身份验证的 Apache。我有基本案例,但没有摘要。 Basic 的配置如下所示:

location /basic {
      proxy_set_header x-user $http_x_user;                
      proxy_pass       http://my.apache.server; // where authentication happens
  proxy_set_header X-Original-URI $request_uri;
      proxy_set_header       Host $host;
      proxy_set_header       X-Real-IP $remote_addr;

}

有人可以帮我解决如何完成 Digest 案例吗?

【问题讨论】:

  • 我会让 nginx 处理基本身份验证和 proxy_pass 摘要身份验证到 apache。
  • @Cole 你能给我具体的配置吗?尝试了以下,但没有奏效。位置 /digest { proxy_set_header X-Real-IP $remote_addr; proxy_set_header 主机 $host; proxy_pass_request_headers 开启; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwared-User $http_authorization; proxy_set_header 授权 $http_authorization; proxy_pass_header 授权; proxy_pass apache.server.com; }

标签: apache nginx digest


【解决方案1】:

这是一个对我有用的配置示例:

location /basic {  # let nginx handle basic auth
    auth_basic  "Basic Authentication";
    auth_basic_user_file    conf/htpasswd;
}

location /digest {  # pass digest auth to another server
    proxy_pass  http://my.apache.server;
    proxy_set_header    Host $host;
    proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
}

【讨论】:

  • 我已经尝试过(并且刚刚再次尝试)但没有成功。我收到 400(错误请求)回复。有任何想法吗?非常感谢您的帮助。
  • 就我而言,我将摘要身份验证传递给lighttpd。如果您注释掉 proxy_set_header 指令会发生什么?
  • 我回家后会试试,然后告诉你。再次感谢。
  • 不幸的是,没用。呸!我可以使用带有摘要检查的休息客户端点击 apache,然后我得到了成功。所以,我很难过为什么它不会通过 nginx。有什么想法吗?
  • 你有解决办法吗?我面临类似的问题,答案会很有帮助。
猜你喜欢
  • 2021-07-11
  • 1970-01-01
  • 2017-10-18
  • 1970-01-01
  • 1970-01-01
  • 2017-06-27
  • 2017-01-19
  • 2020-01-21
  • 1970-01-01
相关资源
最近更新 更多