考虑以下 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
变量?
no_proxy
可以设置为类似no_proxy="intranet.domain.com,*.local,..."
但否则环境变量是每个进程的字符串,因此无法[†] a)表达任何事情的逻辑isInNet
或 b)更新现有进程的环境,这些进程具有一些旧的和现在无效的字符串集。除非您杀死所有进程,否则http_proxy
根据isInNet
所做的设置一个新进程,然后重新启动所有进程,以便当它们从父进程fork
接收到新进程的新副本时。http_proxy
如果所有进程都在您的控制之下,您可以编写一个 API 来调整环境变量。如果您有任何
fork
不受您控制的事情,这将失败(因为该过程可能很快就会设置一些错误的字符串)并且与仅使用现有业务逻辑相比可能不必要地复杂。[†] 好吧,有
gdb
或没有猴子修补记忆所以不容易或不疯狂的方式