У нашей компании есть групповая политика, которая заставляет все (Win7) компьютеры использовать прокси-сервер, за некоторыми исключениями. Одно из исключений - подстановочный знак - *.ourcompanydomain.com
.
Однако нам нужно включить только 1 поддомен этого подстановочного знака - proxyme.ourcompanydomain.com
- пройти через прокси вместо исключения.
Мы знаем, что можем исключить все поддомены ourcompanydomain.com
индивидуально, а не с использованием подстановочного знака, но их десятки, и список регулярно меняется. Это будет сложно настроить, не говоря уже о поддержке.
Есть ли другой способ исключить подстановочный знак? *.ourcompanydomain.com
и просто снова включите proxyme.ourcompanydomain.com
?
Этого можно добиться с помощью сценария автоматической настройки, также известного как файл PAC.
В разделе "Автоматическое определение настроек" Общие сведения о конфигурации веб-прокси:
Пользователь также может напрямую указать URL-адрес сценария конфигурации прокси, используя второй флажок в диалоговом окне. Поле URL ниже указывает прямо на целевой скрипт (например, http://proxy.contoso.com/proxy.pac).
Сценарии конфигурации прокси, обнаруженные через WPAD или указанные пользователем вручную, представляют собой файлы JavaScript, которые предоставляют по крайней мере одну функцию FindProxyForURL (url, host). Эта функция вызывается браузером каждый раз, когда ему нужно решить, куда отправить данный запрос. Он возвращает строку, которая либо:
«ПРЯМОЙ» означает, что запрос должен обходить прокси.
«PROXY PrimaryProxy: 8080; BackupProxy: 81 », указывающий, что запрос должен быть перенаправлен на прокси-сервер PrimaryProxy на порт 8080, за исключением случаев, когда этот сервер недоступен, и в этом случае запрос должен быть отправлен на BackupProxy на порт 81.
И на примере в статья в Википедии о PAC Я считаю, что это должно сработать для вас:
function FindProxyForURL(url, host) {
if (shExpMatch(host, "proxyme.mycompanydomain.com"))
{
return "PROXY myproxy.mycompanydomain.com:8080";
}
if (shExpMatch(host, "*.mycompanydomain.com"))
{
return "DIRECT";
}
return "PROXY myproxy.mycompanydomain.com:8080";
}