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

Сцепление двух кальмаров

У меня есть два сервера Squid, Squid A и Squid B.

Squid A прозрачно кэширует для локальной сети.

Я хотел бы настроить Squid A так, чтобы при запросе URL-адреса, соответствующего регулярному выражению, вместо того, чтобы обслуживать запрос как обычно, он «перенаправлял» через Squid B, чтобы Squid B обслуживал запрос, передавая результат обратно в Squid A который передает его клиенту.

Как мне настроить файл конфигурации для Squid A для этого?

Используйте следующее в конфигурации squid A (обычно /etc/squid/squid.conf)

cache_peer <squid server B IP> parent <server B squid port> 3130 no-query no-digest no-netdb-exchange 

acl otherproxy url_regex "/etc/squid/divert.txt"
cache_peer_access <Squid server B IP> allow otherproxy
never_direct allow otherproxy
cache_peer_access <squid server B IP> deny all

И следование в конфигурации squid B поверх других acls

acl A_proxy src <Squid server A IP>/32
http_access allow A_proxy

После этого вы можете добавить регулярные выражения в файл /etc/squid/divert.txt и перезагрузить squid. Соответствующие URL-адреса будут запрошены с сервера B, а не напрямую.

Причина, по которой я упомянул добавление acl на прокси-сервере B, заключается в том, что слишком избегайте аутентификации, ограничения на количество подключений и т. Д. Настроек прокси-сервера B, влияющих на клиентов прокси-сервера A, поскольку такие проблемы очень сложно отлаживать. Поэтому лучше разрешить все запросы от прокси A к прокси B. Если вы хотите что-то заблокировать, заблокируйте это в обеих конфигурациях прокси.

вам нужно что-то вроде следующего в squid.conf squid A. используйте его в качестве примера и настройте в соответствии с вашими требованиями.

# define squid B as a parent
cache_peer squid.b.example.com parent 3128 3130 default

# create ACLs for any domains or IP address ranges that you
# don't want to get from the parent (squid B). for example:
acl local_domains domain your.local.domains.here
acl local_ip dst your.local.ip.addresses.here
always_direct_allow local_domains
always_direct allow local_ip

# and deny direct access to everything else
never_direct allow all

В Squid есть особенность, поддерживающая иерархическую организацию прокси-серверов. В страница справочника squid есть отличная документация по этой теме.