dnsResolve и проблема функций isInNet

Большая часть моего опыта показывает RAID 10 для дисков в сервере, но затем подключенный к некоторой форме SAN для "фактического" устройства хранения данных.

Или пропустите RAID полностью (с точки зрения "машины") при рассмотрении виртуализации на SAN.

5
задан 14 February 2011 в 18:35
2 ответа

У Вас есть несколько прокси-серверов в Вашей организации, и этот .pac файл, как предполагается, характерен для сервера с адресом 10.1.1.116? В противном случае можно, вероятно, просто избавиться от той проверки. С тех пор FindProxyForURL() назван для каждого запроса, который должен выполнить Ваш браузер dnsResolve() может потенциально заблокировать Ваш браузер в течение довольно мало времени в зависимости от того, как хорошо Ваш DNS работает.

Если Вам нужно это dnsResolve() назовите затем один способ двигаться, который должен переместить его за пределами FindProxyForURL():

var myProxyServerIP = dnsResolve("ProxyServer");

function FindProxyForURL(url, host) {
  if (myProxyServerIP == "10.1.1.116")
    if (dnsDomainLevels(host) == 0 ||
        isInNet(host, "10.0.0.0","255.0.0.0") ||
        isInNet(host, "125.0.0.0","255.0.0.0") ||
        isInNet(host, "127.0.0.0","255.0.0.0") ||
        isInNet(host, "204.223.70.250","255.255.255.255") ||
        dnsDomainIs(host, ".muj.com") ||
        dnsDomainIs(host, "sv.com.gt") ||
        dnsDomainIs(host, "com.es.gt"))
      return "DIRECT";
    else return "PROXY 10.1.1.116:8080";

  else return "DIRECT";
}

Это изменение сделает его так, чтобы dnsResolve() только назван, когда .pac файл загружается вместо каждого раза, когда запрос выполнен к браузеру. Необходимо будет определить для себя, если это будет чем-то, что можно сделать в среде на основе того, как часто тот адрес изменился бы. Но снова, адрес Вашего прокси-сервера должен быть статичным.

Подсети, с которыми Вы сверяетесь isInNet() называет непосредственную карту доменов, с которыми Вы сверяетесь dnsDomainIs() вызовы? Раз так затем Вы имеете дублирование там и можете удалить один один набор вызовов.

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

5
ответ дан 3 December 2019 в 01:27

Для каждого вызова функции isInNet выполняется поиск в DNS, если хост не является IP-адресом. Это замедлит процесс, так как вам нужно будет выполнить 4 поиска DNS и дождаться ответа от DNS-сервера. Вы можете сделать следующее, чтобы уменьшить количество DNS-вызовов до одного.

 function FindProxyForURL(url, host) {
  if (dnsResolve("ProxyServer") == "10.1.1.116")

    hostip=dnsResolve(host);

    if (dnsDomainLevels(host) == 0 ||
        isInNet(hostip, "10.0.0.0","255.0.0.0") ||
        isInNet(hostip, "125.0.0.0","255.0.0.0") ||
        isInNet(hostip, "127.0.0.0","255.0.0.0") ||
        isInNet(hostip, "204.223.70.250","255.255.255.255") ||
        dnsDomainIs(host, ".muj.com") ||
        dnsDomainIs(host, "sv.com.gt") ||
        dnsDomainIs(host, "com.es.gt"))
      return "DIRECT";
    else return "PROXY 10.1.1.116:8080";

  else return "DIRECT";
}
2
ответ дан 3 December 2019 в 01:27

Теги

Похожие вопросы