У меня со сквидом такая проблема:
Некоторые клиенты одновременно получают доступ к 62 серверам через прокси-сервер squid. Все серверы имеют одинаковое имя хоста (www.example.com), но разные общедоступные IP-адреса (123.123.123.2 - 123.123.123.63). Владелец сервера использует своего рода циклический перебор DNS.
У меня есть доступ только к серверу squid и клиентам. Подключение к серверам разрешено только через IP-адреса прокси.
Без прокси я просто отправляю запрос на загрузку данных с http // 123.123.123.5 / dataforme, но отправляю заголовок хоста «www.example.com». Это работает так, как должно.
Но теперь, используя squid в качестве прокси без кеширования, это больше невозможно. Squid отменяет отправленный заголовок хоста запроса. Таким образом, целевой сервер не знает, какие данные нужно доставить, потому что заголовок хоста передается неправильно.
Я установил
url_rewrite_host_header off
Но это не имеет никакого эффекта. Кажется, что эта опция используется только при использовании squid в качестве перенаправителя. Я не этим занимаюсь.
Следующее будет работать, если не было других сайтов для загрузки:
header_access Host deny all
header_replace Host www.example.com
Но когда я это сделаю, каждый запрос будет получать заголовок хоста www.example.com. Тогда доступ к другим сайтам будет невозможен.
Что я могу сделать?
Заранее спасибо за вашу помощь!
Стандартные установки Squid этого не делают, если только с некоторыми ошибочными директивами. Если вы используете стандартную версию, пожалуйста, переделайте конфигурацию с нуля. Если это пользовательская компиляция, вам следует просмотреть код и параметры компиляции.
Добавьте эти строки в конфигурацию вашего кальмара. Посмотрим, поможет ли это.
request_header_access Referer deny all
request_header_access X-Forwarded-For deny all
request_header_access Via deny all
request_header_access Cache-Control deny all
forwarded_for off