Posso definir manualmente vários proxies no ambiente?

Posso definir manualmente vários proxies no ambiente?

Considere o seguinte arquivo PAC:

function FindProxyForURL(url, host) {
    if (dnsDomainIs(host, "intranet.domain.com"))
        return "DIRECT";

    if (isInNet(myIpAddress(), "10.10.5.0", "255.255.255.0"))
        return "PROXY 1.2.3.4:8080";

    return "PROXY 4.5.6.7:8080; PROXY 7.8.9.10:8080";
}

Existe uma maneira de transferir essas configurações $http_proxye $no_proxyvariáveis ​​de ambiente?

Responder1

no_proxypoderia ser definido como algo parecido no_proxy="intranet.domain.com,*.local,...", mas caso contrário, as variáveis ​​​​de ambiente são strings por processo, então não há como [†] a) expressar a lógica de tudo o isInNetque faz ou b) atualizar o ambiente de processos existentes que possuem algumas strings antigas e agora inválidas definidas. A menos que você elimine todos os seus processos, defina um novo http_proxycom base no que quer isInNetque faça e reinicie todos os seus processos para que quando eles forkrecebam uma nova cópia do novo http_proxydo processo pai.

Se todos os processos estiverem sob seu controle, você poderá escrever uma API para ajustar variáveis ​​de ambiente. Isso falhará se você tiver forkalgo que não esteja sob seu controle (porque esse processo poderá ter alguma sequência errada definida) e provavelmente será desnecessariamente complicado em comparação com apenas o uso da lógica de negócios existente.

[†] bem, existe gdbou não um macaco corrigindo a memória, então não é uma maneira fácil ou insana

informação relacionada