Настройка юзерских проксиков для ленивых сисадминов
Буквально на днях шёл мимо своих мусорников и размышлял, как же работает автоконфигурация проксиков в браузерах. Я имею в виду строку с адресом из скриншота справа.
Оказывается, эта довольна интересная конфигурационная особенность доступна для всех браузеров (telnet не браузер) и даёт возможность управлять настройками проксика через JavaScript. По дефолту название файла должно быть proxy.pac, и в нём должна быть описана минимум 1 функция, FindProxyForURL(url, host). Так же, по дефолту, MIME-тип файла должен быть application/x-ns-proxy-autoconfig или application/x-javascript-config, хотя современным браузерам, в принципе, на него наплевать.
Пример описания функции:
function FindProxyForURL(url, host) { return "PROXY proxy1.example.com:8080; PROXY proxy2.example.com:8080; DIRECT"; }
Пытаться использовать проксик. Если неудача преследует нас – делать прямые запросы. Как видно из примера, можно возвращать 2/3/4/99 проксиков в одном ответе, тем самым распределяя нагрузку. Я как-то ожидал более сложной настройки и вообще системы автоконфигурации в целом :/
Список других функций есть на специализированном сайте в разделе “PAC Functions Explained“, а более подробное чтиво на эту тему доступно на английском языке в статье “Automatic proxy HTTP server configuration in web browsers“
