考慮以下 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)表達任何內容的邏輯isInNet
或b)更新具有一些舊的且現在無效的字串集的現有進程的環境。除非您終止所有進程,否則http_proxy
根據isInNet
所做的任何操作設定新進程,然後重新啟動所有進程,以便它們從父進程fork
收到新進程的新副本。http_proxy
如果所有進程都在您的控制之下,您可以編寫一個 API 來調整環境變數。如果您遇到fork
一些不受您控制的事情(因為過程中可能很快就會設定一些錯誤的字串),這將會失敗,並且與僅使用現有業務邏輯相比,這可能會不必要地複雜。
[†] 好吧,有gdb
猴子修補記憶,所以沒有簡單或不瘋狂的方法