- Оптимизация производительности с помощью сценариев автоматической настройки прокси-сервера (PAC)
- Запрос имен NetBIOS
- Запрос внутренних DNS-суффиксов
- Запрос диапазонов IP-адресов
- JavaScript с чувствительностью к делу
- Использование IPv6
- Тестирование файла PAC
- Тестирование с помощью Autoprox.exe
- Обработка ошибок в Autoprox.exe
- Proxy auto configuration windows
Оптимизация производительности с помощью сценариев автоматической настройки прокси-сервера (PAC)
В этом разделе объясняется, как оптимизировать производительность сценария автоматической настройки прокси-сервера (PAC-файл, также известный как Wpad.dat). В этом документе основное внимание уделяется устранению проблем с серверами интрасети напрямую и внешним внутренним трафиком через прокси-сервер.
Дополнительные сведения о функциях, используемых для оценки адреса (URL-адреса или имени хоста), см. в примере использования файлов автоматической конфигурации прокси-сервера (PAC) с IEAK 11.
Функции и подсистема DNS отправляют isInNet() isResolvable() dnsResolve() запросы. Поэтому следует избегать или, по крайней мере, свести к минимуму использование этих функций.
Запрос имен NetBIOS
NetBIOS-имена (имена серверов без точка) используются только в интрасети и не маршрутизируется через прокси-сервер:
Запрос внутренних DNS-суффиксов
Зоны DNS, используемые внутри организации, обычно маршрутются напрямую. Самый простой способ определить такие hosts — использовать dnsDomainis функцию:
Альтернативный и более быстрый метод для того же результата можно получить с помощью ShExMatch() . Эта функция сравнивает строки. Он возвращает тот же результат, но добавляет звезду (*) в качестве подикаика:
Запрос диапазонов IP-адресов
Если IP-адрес хоста принадлежит локальной интрасети независимо от имени веб-сервера, он должен обходить прокси-сервер для прямого навигации.
Если IP-адрес введен непосредственно в адресной панели, повторное разрешение не нужно. Можно использовать следующий код, чтобы проверить, находится ли хост уже в формате IP-адреса:
Этот код проверяет, содержит ли хост переменной три числовые параметра, за которыми следует точка, а затем еще одно число. Затем результат передается в возвращаемую переменную. В противном случае результатом будет «true» для IP-адреса, а в противном случае — «false».
В следующем фрагменте кода IP-адрес ведущего переменного содержит IP-адрес для использования в последующих проверках:
Когда несуществующая функция передается в функцию (например, пользователь введет что-то не так в адресной панели), результат в IP-адресе хоста может быть нулем. Прокси-сервер будет обрабатывать все дополнительные ошибки:
Так как у нас есть IP-адрес хоста, необходимо проверить внутренние диапазоны IP-адресов. По возможности используйте shExpMatch функцию вместо isInNet . Следующие фрагменты кода имеют одинаковые результаты, хотя shExpMatch и быстрее:
JavaScript с чувствительностью к делу
Сценарий прокси-сервера использует язык JavaScript. JavaScript с чувствительностью к делу. Таким образом, предложение в верхнем регистре никогда не станет истинным, в то время как другие if параметры используют нижний регистр. Internet Explorer сам преобразует переменные и в нижний host url регистр перед тем, как функция будет FindProxyForURL вызвана.
Это условие не является истинным для WinHTTP . Это связано с WinHTTP тем, что host передает функцию и url непосредственно функцию.
Поэтому перед оценкой параметров, которые проверяются в PAC-файле, необходимо преобразовать в PAC:
Использование IPv6
Если вы хотите использовать и обрабатывать IPv6-адреса, Internet Explorer поддерживает их, так как Internet Explorer включен во все поддерживаемые в настоящее время версии Windows (и в WinHTTP, начиная с Windows Vista). Однако в этом случае необходимо использовать функции «Ex» (например, «Ex»), как упоминалось isInNetEx() в следующей статье:
Пример реализации см. в примере myIpAddressEx функции «myIpAddress»,которая возвращает неправильный результат в Internet Explorer 9.
Тестирование файла PAC
Если сценарий содержит ошибку синтаксиса (например, отсутствующий знак «» в заявлении), сценарий if не будет запускаться. Чтобы свести к минимуму ошибки, рассмотрите возможность использования редактора скриптов, который выполняет проверку синтаксиса. Используя Visual Studio, можно переименовать расширение PAC в JS-файл во время редактирования, но переименовать его обратно в «PAC» перед отправкой на веб-сервер.
Начиная с Windows 10, вы больше не сможете использовать файлы PAC на основе файлов. Дополнительные сведения см. в следующих статьях:
Тестирование с помощью Autoprox.exe
Иногда необходимо проверить PAC-файл, даже если у вас нет доступа к веб-сайту. Для этого можно использовать средствоAutoprox.exe командной строки.
Если открыть средство в команде без использования дополнительных параметров, будут возвращены следующие выходные данные с помощью справки:
Вот выходные данные, если в нем используется наш пример:
Обработка ошибок в Autoprox.exe
Если файл PAC содержит ошибки синтаксиса, вы получите следующее сообщение:
ОШИБКА: сбой InternetGetProxyInfo с номером ошибки 0x3eb 1003.
После завершения локального теста следует скопировать PAC-файл на веб-сервер, на котором он будет получать доступ через протокол HTTP.
Заявление об отказе от ответственности за контактные данные сторонней организации
Майкрософт предоставляет контактные данные независимых производителей, которые помогут вам найти дополнительные сведения по этой теме. Эти данные могут быть изменены без предварительного уведомления. Корпорация Майкрософт не гарантирует точность сведений о контактной информации стороннего производителя.
Proxy auto configuration windows
Возникла необходимость автоматически настраивать прокси для всех компьютеров и не бегать к ним, если, например, поменялось что-то на прокси сервере. Для этого существует технология Proxy Auto Configuration (PAC).
Создание файла автоконфигурации прокси
Большинство браузеров можно автоматически сконфигурировать для использование прокси. Данная возможность реализуется при помощи Proxy Auto Configuration (PAC). PAC — файл, в котором содержится только одна функция JavaScript — FindProxyForURL ().
Создадим файл будущего скрипта:
И немного ознакомимся с основными понятиями:
Теперь необходимо указать нужные настройки для браузеров. Возможен выбор из двух вариантов, используйте тот, который вам удобнее, например, я использую второй вариант.
Web Proxy Auto-Discovery protocol
Подготовка Apache
Необходимо, чтобы Apache выдавал скрипт при запросе. Для этого надо разрешить обращаться к файлам типа .dat:
1. Добавим в httpd.conf дерективу
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 следующие строчки.
2. Перезапустите DHCP сервер.
Небольшой нюанс — у 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 нормально не работает «Автоматически определять настройки прокси для этой сети» или нужно дополнительно по гуглить =).
Отдельное спасибо Andy за помощь в редактировании статьи =)
размещено: 2008-07-31,
последнее обновление: 2008-08-01,
автор: Raven2000
Хорошо бы упомянуть про вариант fallback:
«PROXY IP_proxy:3128; DIRECT»
Помогает, если прокси лежит.
Баян, но полезный. Почти всё в одном месте. Спасибо.
Kolesya, 2008-08-01 в 8:25:55
Если расширение файлу поставить wdat.pac апач перенастраивать не придется 🙂
Sash, 2008-08-01 в 9:12:43
Хм.. я вот не понимаю зачем это вообще нужно, если прокси как правило юзается в больших офисах, где 99% стоит AD. Используя GPO можно изменять адрес прокси не поднимая задницы со стула, да и правила ipfw fwd тоже никто не отменял на шлюзе из freebsd. нафига козе бойан? или я что-то не понимаю?
Не зацикливайтесь на продуктах M$
Во многих больших и крупных конторах за стандарт идёт Firefox
Shemmy, 2008-08-01 в 10:11:06
Есть уточнение. В автоконфигурирования по DHCP надо применять значение
option local-pac-server «http://wpad.example.com:80/wpad.dat\000»;
Internet Explorer отрезает последний символ в строке.
И как показала практика автоконфигурирование по DHCP работает только для Internet Explorer
Antonio, 2008-08-01 в 10:16:24
Как-то тоже настраивал, но не пошло, потому как только для IE, а это можно задать и в групповых политиках.
to hsw
см в конце все на return «DIRECT»; разве не то?
to Kolesya
Самое интересное, что я при выпуске статьи это урезал
А было в статье еще
+ AddType application/x-ns-proxy-autoconfig .pac
+ Redirect / wpad.dat / proxy.paс
+ ln -s wpad.dat proxy.paс
to Sash
У меня так и есть на работе =) НО в домашней сети, где каждый сам ПК по себе и нет серверов маздая то это самое то и без разговоров =) Да и не забудь, бывает и шлюзов с фри нет и прокси на маздае нет и бессмысленно ставить AD =)
Да и у каждого от Сафари до Мозиллы
to Shemmy
пробовал с \000 и без разницы небыло замеченно тестил на IE, Firefox, Opera так что я это из статьи выкинул тк смысла не увидел (может не прав =) еще раз потестю).
Да и на счет IE про автоконфиг по DHCP ты прав в самую точку, но я в статье это указал В Опере авто по DHCP нет, а в Firefox нормально не пашет, что и написал
to Antonio
Ты не прав это не только для IE, а для всех грамотных браузерах работает и на счет AD писал для Kolesya выше
Shemmy, 2008-08-01 в 12:07:18
to Raven2000
IE кеширует настроки прокси. в Групповой политике есть настройка отключающая кеширование.
to Raven2000
Нет, не то.
Если сработает правило с «PROXY: . «, а прокси не ответит, браузер покажет ошибку.
Если будет «PROXY: . ; DIRECT» — через таймаут пойдёт DIRECT-ом.
Можно указать несколько проксей в порядке уменьшения приоритета.
to Shemmy & hsw
Fixed
Что еще можно добавить?
to Raven2000
упс. retrurn «. «;
«;» в конце не хватает.
Блин фсе %0 сказывается последний день на работе и в отпуск =)
savio, 2008-08-02 в 21:47:35
а не проще сделать «прозрачный» прокси на серваке? на стороне юзера вообще ничего делать не нужно
С автонастройкой в IE тоже ничего делать не надо.
Она включена по умолчанию.
Да, и прозрачный прокси для https, ftp и socks сделать проблематично.
Смотрите ширше. Включение wpad.
.com позволяет загонять клиентов с реальными адресами на proxy провайдера.
Dima, 2008-08-03 в 15:38:58
Не зацикливайтесь на продуктах M$
Во многих больших и крупных конторах за стандарт идёт Firefox
Хотел бы я увидеть те большое компании которые используют Firefox за стандарт 🙂
К сожаление, большинство прог заточенно как раз по ИЕ.
ostrik, 2012-07-06 в 12:55:09
Перед тем как пользоваться протоколом WPAD, обратите внимание на эту статью — http://www.securitylab.ru/analytics/379619.php
после добавления:
AddType application/x-ns-proxy-autoconfig .dat
файл не открывается а пытается скачиваться
зато без неё всё намана 😉
Ховди ttys, ты погляди на сам формат mime:
# MIME type           Extensions
# application/3gpp-ims+xml
# application/activemessage
application/andrew-inset       ez
# application/applefile
application/applixware         aw
application/atom+xml         atom
application/atomcat+xml         atomcat
Добавляй без точки:
# Add WPAD type
AddType application/x-ns-proxy-autoconfig dat
2 Юрий,
я забил на это т.к. решил отказаться от прокси и потушил сквид 😉
но спс за подсказку =)
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов. 2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540 2011-11-20, BlackCat
Разъём на WiFi-карту
Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма 2011-09-14, manefesto
Настройка git+gitosis
Настройка системы контроля версия исходного кода в связке git+gitosis+ssh 2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS
Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ 2011-06-15, -ZG-
Охранная система на FreeBSD+LPT
В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией. 2011-03-13, terminus
ng_nat
Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat 2011-02-20, Капитан
Nagios+Digitemp
Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp. 2011-02-17, Le1
Zyxel Configuration
Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл. 2011-02-16, fox
hast carp zfs ucarp cluster
HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления… 2011-02-04, BlackCat
Восстановление ZFS
История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий. 2011-02-03, Капитан
1-Wire
Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp. 2011-01-28, Капитан
Температура в серверной
Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG 2011-01-21, m4rkell
Syslog server
Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк 2011-01-07, lissyara
Canon/gphotofs
Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты. 2010-12-13, Al
IPSec
Описание принципов работы IPSEC и способов аутентификации. 2010-12-07, manefesto
FreeBSD on flash
Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =) 2010-12-05, Fomalhaut
root ZFS, GPT
Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы — ZFS 2010-09-05, Cancer
Настройка аудиоплеера на ximp3
Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
|
Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.