PACファイルとは
プロキシ自動設定(Proxy Auto-Configuration)ファイルのことで、ブラウザが指定したWebサイトに直接アクセスしたり、特定条件のときだけプロキシサーバーを経由するように指示が書けるテキストファイルのことです。
例えば、PACファイルないで条件を指定すると、プロキシを経由する曜日や時間帯を指定したり、指定したドメインやURLへのアクセスのときだけプロキシを経由しないなどを指定したりすることができます。
PACファイルの設定方法
Windowsならば、コントロールパネルのインターネットオプションから
[接続]タブ - [LANの設定]ボタンをクリックして、「ローカル エリア ネットワーク(LAN)の設定」のウィンドウを表示します。
そのなかの「自動構成スクリプトを使用する」にチェックを入れて、「アドレス」欄にpacファイルが配置されているpathを入力します。
インターネット上に配置している場合の例: https://domain/sample.pac
ローカルファイルとして配置した場合の例: file://c:/tmp/sample.pac
PACファイルの記述方法
PACファイルはJavaScriptの形式で記述され、プロキシのルールや条件を指定することができます。以下に、基本的なPACファイルの記述方法のサンプルを示します。
function FindProxyForURL(url, host) {
// プロキシの定義
// 使用するプロキシとポートを記載
var proxy = "PROXY proxy.example.com:3128";
// プロキシの適用条件
// 「www.amazon.com」にアクセスしたときだけプロキシを経由するという条件
if (shExpMatch(url, "https://www.amazon.com/")) {
return proxy;
}
// それ以外はプロキシを使用しないで直接接続する
return "DIRECT";
}
プロキシを複数使用することも可能です
複数のプロキシを定義する場合は、条件ごとに異なるプロキシを返すように指定します。
function FindProxyForURL(url, host) {
// プロキシの定義
var proxy1 = "PROXY proxy1.example.com:8080";
var proxy2 = "PROXY proxy2.example.com:8080";
// プロキシの適用条件
if (condition1) {
return proxy1;
}
if (condition2) {
return proxy2;
}
return "DIRECT";
}
サポートされる関数
PACファイルでは、さまざまな関数を使用して条件を指定することができます。代表的な関数としては以下のものがあります。
shExpMatch(str, pattern): 文字列strがワイルドカードパターンpatternにマッチするかどうかをチェックします。
dnsDomainIs(host, domain): ホスト名hostがドメインdomainに属するかどうかをチェックします。
isInNet(ip, subnet, mask): IPアドレスipが指定されたサブネットsubnetに属するかどうかをチェックします。
isResolvable(host): ホスト名hostが解決可能かどうかをチェックします。
これらの関数を組み合わせて、PACファイル内でプロキシの条件を指定することができます。
Comments