Graphiti / Graphite 使用 Apache 的 Proxy 和 BasicAuth 请求对每个 URL / 请求进行身份验证

Graphiti / Graphite 使用 Apache 的 Proxy 和 BasicAuth 请求对每个 URL / 请求进行身份验证

我们有一台安装了 apache 的服务器,作为在同一台机器上运行的后端 Web 服务的身份验证前端。

该设置最初似乎有效,但我们很快意识到,每次我们单击链接、返回或重新加载页面时,apache 都会要求进行身份验证。我们现在不知道该如何解决这个问题。

我们的 apache2 虚拟主机文件:

<VirtualHost *:80>

  ServerName app.ourdomain.com
  ErrorLog /var/log/apache2/graphiti-error.log
  CustomLog /var/log/apache2/graphiti-access.log common

  <Location "/">
          require valid-user
          order allow,deny
          Allow from all
          AuthType Basic
          AuthName "Stats"
          AuthBasicProvider file
          AuthUserFile /etc/passwd_lp
  </Location>

  ProxyRequests off
  ProxyPreserveHost on
  ProxyPass / http://localhost:8080/
  ProxyPassReverse / http://localhost:8080/

  <Proxy *>
          Order allow,deny
          Allow from all
  </Proxy>

</VirtualHost>

我们在 Ubuntu EC2 12.04 上使用 Apache2 v2.2.22

我们已经尝试过;将 Auth 声明移入<Proxy>块;设置ProxyRequests on;设置ProxyPreserveHost off

谢谢

答案1

我现在已经解决了这个问题。从本质上讲,这与 Apache 无关。Graphiti 使用 JavaScript 函数向 Graphite 服务发出 HTTP 请求,我们已将其设置为单独的虚拟主机,并且还设置了 Auth(有些用户更喜欢直接使用它)。

因此,基本上,graphite 使用的 URL 中没有用户/密码,因此每个人都会触发 Auth 提示。要解决这个问题,我们只需要更新模板,以便 URL 按照语法生成http://<user>:<password>@<host>

相关内容