Возникла необходимость автоматически настраивать прокси для всех компьютеров и не бегать к ним, если, например, поменялось что-то на прокси сервере. Для этого существует технология Proxy Auto Configuration (PAC).
Создание файла автоконфигурации прокси Большинство браузеров можно автоматически сконфигурировать для использование прокси. Данная возможность реализуется при помощи Proxy Auto Configuration (PAC). PAC - файл, в котором содержится только одна функция JavaScript - FindProxyForURL ().
Создадим файл будущего скрипта:
# touch wpad.dat
И немного ознакомимся с основными понятиями:
Переменная Описание DIRECT Загрузить обьект непосредственно через указанный URL PROXY name:port Загрузить обьект через указанный прокси сервер и порт SOCKS name:port Загрузить обьект через SOCKS сервер по указанному
имени сервера и порту
Теперь необходимо указать нужные настройки для браузеров. Возможен выбор из двух вариантов, используйте тот, который вам удобнее, например, я использую второй вариант.
Первый вариант
function FindProxyForURL(url, host) { // Local/Internal Websites (.e.g Intranet) if (shExpMatch(url,"*.example1.com/*")) {return "DIRECT";} if (shExpMatch(url,"*.example2.com:*/*")) {return "DIRECT";}
// If client machine is on company network // return proxy otherwise go direct if (isInNet(myIpAddress(), "10.10.1.0", "255.255.255.0")) {return "PROXY 10.10.1.100:8080";} else return {"DIRECT";}
}
Второй вариант
function FindProxyForURL(url, host) { if (isInNet(host, "192.168.1.0", "255.255.255.0")) { return "DIRECT"; } else { if (shExpMatch(url, "http:*")) return "PROXY IP_proxy:3128; DIRECT"; if (shExpMatch(url, "https:*")) return "PROXY IP_proxy:3128; DIRECT"; if (shExpMatch(url, "ftp:*")) return "PROXY IP_proxy:2121; DIRECT"; if (shExpMatch(url, "socks:*")) return "SOCKS IP_proxy:1080; DIRECT"; return "DIRECT"; } }
Web Proxy Auto-Discovery protocol
Подготовка Apache Необходимо, чтобы Apache выдавал скрипт при запросе. Для этого надо разрешить обращаться к файлам типа .dat:
1. Добавим в httpd.conf дерективу
AddType application/x-ns-proxy-autoconfig .dat
WPAD метод основанный на DNS Механизм WPAD просто строит цепочку известных URL, начинающихся с доменного имени машины и оканчивающего коротким суффиксом wpad. Например, доменое имя было example.com., то URL будет следующий:
Таким образом, браузер будет пытатся загрузить PAC скрипт известного доменного URL. Для реализации данного метода сделаем следующее:
1. Создим в DNS имя и присвоим ему IP Например, создаем запись wpad.example.com с IP адресом 192.168.1.12 или создаем alias на существующий хост (что удобнее). 2. Создадим в Apache виртуальный хост с именем wpad.example.com 3. Скопируем скрипт wpad.dat в директорию виртуального хоста
Второй метод WPAD, основанный на DHCP WPAD просто выдает PAC скрипт с выбранный номером 252 в "аренду" запросившему IP. Браузер получает URL скрипта и просто качает его по ссылке.
1. Добавим в /etc/dhcp/dhcpd.conf следующие строчки.
Небольшой нюанс - у DHCP приоритет выше, чем у DNS, как следствие - гораздо быстрее. И можно вместо имени сайта указать его IP, в этом случае отсутствуют расходы времени на преобразование адреса в имя, что добавляет скорости.
Настройка браузеров
Теперь настроим браузер. В параметрах программы нужно указать определение прокси-сервера:
1) В браузере Explorer Сервис -> Свойства обозревателя -> Подключения -> Настройка сети поставим галочку напротив опции "Автоматическое определение параметров" или поставим галочку напротив опции "Использовать сценарий автоматической настройки" и в поле "Адрес" напишем http://wpad.example.com:80/wpad.dat
2) В браузере Opera Настройки -> Дополнительно -> Сеть -> Прокси-серверы поставим галочку напротив опции "Автоматическая конфигурация прокси-сервера" и в поле "Адрес" написать http://wpad.example.com:80/wpad.dat
3) В браузере Firefox Инструменты->Настройки->Дополнительно->Сеть->Соединение(Настроить) выберем опции "Автоматически определять настройки прокси для этой сети" или выберем опцию "URL автоматической настройки сервиса прокси" и в поле "Адрес" напишем http://wpad.example.com:80/wpad.dat Нажмите кнопку Обновить, чтобы загрузить настройки. В версии 3.0.1 нормально не работает "Автоматически определять настройки прокси для этой сети" или нужно дополнительно по гуглить =).