Apache-2.2

使用帶有代理和 BasicAuth 的 Apache 的 Graphiti / Graphite 為每個 URL / 請求請求身份驗證

  • December 20, 2012

我們有一個帶有 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

謝謝

我現在已經解決了這個問題。最終(本身)與Apache無關。Graphiti 使用 JavaScript 函式向 Graphite 服務發出 HTTP 請求,我們已將其設置為單獨的 vhost,它也具有 Auth 設置(有些使用者更喜歡直接使用它)。

所以基本上,graphite 使用的 URL 中沒有使用者/密碼,因此每個人都觸發了 Auth 提示。要修復它,我們只需要更新我們的模板,以便使用http://<user>:<password>@<host>語法生成 URL。

引用自:https://serverfault.com/questions/459317