환경에서 여러 프록시를 수동으로 설정할 수 있습니까?

환경에서 여러 프록시를 수동으로 설정할 수 있습니까?

다음 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";
}

$http_proxy해당 설정을 환경 $no_proxy변수 로 전송하는 방법이 있습니까 ?

답변1

no_proxy다음과 같이 설정할 수 있지만 no_proxy="intranet.domain.com,*.local,..."그렇지 않은 경우 환경 변수는 프로세스별 문자열이므로 a) 수행하는 모든 작업의 ​​논리를 표현하거나 b) 오래되고 현재 유효하지 않은 문자열 집합이 있는 기존 프로세스의 환경을 업데이트할 방법이 없습니다[†] isInNet. 모든 프로세스를 종료하지 않는 한, 수행하는 http_proxy작업에 따라 새 프로세스를 설정한 isInNet다음 모든 프로세스를 다시 시작하여 상위 프로세스로부터 fork새 복사본을 받게 됩니다 .http_proxy

모든 프로세스를 제어할 수 있다면 환경 변수를 조정하기 위한 API를 작성할 수 있습니다. 당신 fork이 통제할 수 없는 일이 발생하면(그러면 해당 프로세스에 곧 잘못된 문자열이 설정될 수 있기 때문에) 기존 비즈니스 로직을 사용하는 것에 비해 불필요하게 복잡해지면 이는 실패할 것입니다 .

[†] 음, 원숭이 패치 메모리가 있으므로 gdb쉽거나 미친 방법은 아닙니다.

관련 정보