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

Varnish caching apache с использованием базовой аутентификации на основе адреса

У меня есть веб-сервер Apache, на котором размещено несколько сайтов. На некоторых сайтах есть HTTP Basic Authentication. Я разрешаю некоторым хостам доступ к сайту в обход HTTP Auth.

Например:

Allow from 10.10.

Сейчас я размещаю кэширующий сервер Varnish перед веб-сервером, и теперь все запросы к веб-серверу появляются так, как они поступают с сервера varnish (192.168.1.101).

IP-адреса из белого списка, которым ранее разрешался доступ к сайтам без аутентификации HTTP, теперь запрашиваются для авторизации HTTP.

Я не могу установить разрешение с 192.168, так как это фактически разрешает доступ ко всему Интернету. Так что мой вопрос. Есть ли способ получить лак для передачи IP-адреса клиента на внутренний сервер, чтобы этого не произошло? Или кто-нибудь знает другой способ решения этой проблемы? Заранее спасибо.

Настройте Varnish для отправки X-Real-IP и используйте mod_rpaf для Apache2.
IP-адрес будет установлен на X-Forwarded-For (который лак добавляет автоматически)

Также отключите кэширование содержимого Varnish с помощью Http Auth, добавив

if (req.http.Authorization) { 
   pass;
}

в vlc_fetch, потому что в противном случае неавторизованные клиенты могли обойти auth.