У меня есть веб-сервер 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.