Squid и parent (родительский) proxy

Надо было подружить 2 прокси сервера. Самое главное, что второй сервер не имел прямого выхода в интернет. Вот и получилась не большая статейка.

Я здесь не буду описывать полностью настройку самого прокси squid, может быть это будет в другой статье, а пойдет речь о Squid и parent proxy. Так что сразу перехожу к делу:

Собственное было задание (не мне, я только принимал участие в конечной донастройки прокси и его нормальной работе 🙂 ) настроить squid ходить в инет через прокси (squid) верхнего уровня. Так как у настраиваемого не было прямого соединения с инетом.
В принципе все это делается легко, просто прописываем в секции cache_peer ваш родительский (parent) прокси.
Начали проверять «все» прекрасно работает. То есть страницы по http открываются, все так и радует глаза. А вот когда ломанулись по https и проверить почту хотя бы на том же mail.ru мы получили балалайку, никакого ответа мы не получаем и прокси Squid нам выдает ошибку.
После анализирования логов был сделан вывод что наш второй прокси Squid пытается весь трафик авторизации почты, https (это все из-за того что прокси пыталось сразу установить security туннель с удаленным сервером) пытается пустить не через родительский прокси, а сразу установить напрямую соединение с удаленным сервером. Но так как я писал раньше, наш второй прокси не имел прямого выхода в инет и вот тут получился затык. Чтобы выйти из этого положения, сначала был облазен squid.conf внимательно и в итоге было сделано следующее:

в секции cache_peer было прописано
cache_peer parent.proxy parent 3128 0 no-query default

в секции never_direct было прописано
never_direct allow all

Первым делом мы указали что у нас есть родителький прокси и назначили его по умолчанию. Вторым делом мы сказали, что все запросы посылать только через родительский прокси, даже если он умрет (правда если он умрет, то не будет и инета).

После этого нам улыбнулась удача.. Может быть это все знают, но я решил все-таки может быть кому-то это понадобится.

Еще можно было попробовать директиву prefer_direct. Насколько я понял она все запросы посылает на родительсский прокси и если только тот умирает, то идет напрямую в инет. Но так как повторюсь прямого доступа в инета нет, поэтому и сама директива не была испытана.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Проверка знаний * Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.