Apache-2.2
使用帶有代理和 BasicAuth 的 Apache 的 Graphiti / Graphite 為每個 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
。謝謝
我現在已經解決了這個問題。最終(本身)與Apache無關。Graphiti 使用 JavaScript 函式向 Graphite 服務發出 HTTP 請求,我們已將其設置為單獨的 vhost,它也具有 Auth 設置(有些使用者更喜歡直接使用它)。
所以基本上,graphite 使用的 URL 中沒有使用者/密碼,因此每個人都觸發了 Auth 提示。要修復它,我們只需要更新我們的模板,以便使用
http://<user>:<password>@<host>
語法生成 URL。