Назад | Перейти на главную страницу

Graphiti / Graphite с использованием Apache с прокси и BasicAuth запрашивает аутентификацию для каждого URL / запроса

У нас есть сервер с 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> синтаксис.