У нас есть сервер с apache, настроенный как интерфейс аутентификации для серверной веб-службы, работающей на том же компьютере.
Сначала казалось, что настройка работает, но вскоре мы поняли, что 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>
Мы используем Apache2 v2.2.22 на Ubuntu EC2 12.04.
Мы уже пробовали; перемещение объявлений Auth в <Proxy>
блок; установка ProxyRequests on
; установка ProxyPreserveHost off
.
Спасибо
Я решил эту проблему. В конце концов, это не имело никакого отношения к Apache (как таковому). Graphiti использует функцию JavaScript для выполнения HTTP-запросов к службе Graphite, которую мы настроили как отдельный виртуальный хост, у которого также была настройка Auth (некоторые пользователи предпочитают использовать ее напрямую).
Таким образом, в URL-адресе, который использовал графит, не было пользователя / пароля, и поэтому каждый запускал запрос Auth. Чтобы исправить это, нам просто нужно обновить наши шаблоны, чтобы URL-адрес генерировался с http://<user>:<password>@<host>
синтаксис.