PacファイルによるProxyの指定

ネットワーク内でProxyサーバを利用する場合、クライアントは利用するProxyサーバを設定する必要があります。

多くは、Webブラウザやシステム設定で、直接ProxyサーバのIPアドレスやポートを指定しますが、Pacファイルを読み込ませる事でも設定できます。

 

Pacファイルを利用する利点

Pacファイルを利用する利点はいくつかありますが、例えば以下のような事例が該当します。

・特定のネットワークはプロキシを理用せず、その他はプロキシを利用する。

・Proxyサーバを複数台用意して、冗長化する。

・Proxyサーバが変更になっても、クライアントの設定変更を実施しないで済む。

 

Pacファイルを利用する為の概要

Pacファイルは、Webサーバを用意し、そこをクライアントに読み込ませます。

Pacファイルをブラウザで読み込むには、「自動プロキシの設定」などで行いますが、ここにWebサーバのURL、例えば、http://pac.unixlife.jp/proxy.pac などと記載し参照します。

クライアントは指定されたPacファイルを読み込み、ファイルに指定された動作をします。

 

Pacファイルの中身

Pacファイルの中身はJava Scriptで書かれたファイルです。ここに、クライアントがプロキシを利用するルールを記載します。

なお、Proxyの指定では複数のProxyサーバを;で区切って記述した場合,左端から順にアクセスを試みますので、複数大のProxyサーバがあれば障害時などにもサービスを止めずに済みます。

 

Pacファイルの設定例

Pacファイルの設定内容例を指名します。

例1

全てのアクセスをプロキシ経由にする場合

function FindProxyForURL(url,host) {
 if (isPlainHostName(host) ||
    isInNet(host,"127.0.0.1","255.255.255.255"))
    return "DIRECT";
 else
    return "PROXY 192.168.1.254:3128; DIRECT";
}

 

例2

192.168.1.0/24ネットワーク内のサーバには直接アクセスし、その他はプロキシサーバを利用する場合。

function FindProxyForURL(url,host) {
 if(isPlainHostName(host)||
    isInNet(host,"127.0.0.1","255.255.255.255"))
    return "DIRECT";
 else if(isPlainHostName(host) ||
    isInNet(host,"192.168.1.0","255.255.255.0"))
    return "DIRECT";
 else
    return "PROXY 192.168.1.254:3128; DIRECT";
}

 

例3

プロキシサーバを複数指定し、冗長化する場合。

function FindProxyForURL(url,host) {
 if(isPlainHostName(host)||
    isInNet(host,"127.0.0.1","255.255.255.255"))
    return "DIRECT";
 else if(isPlainHostName(host) ||
    isInNet(host,"192.168.1.0","255.255.255.0"))
    return "DIRECT";
 else
    return "PROXY 192.168.1.253:3128; PROXY 192.168.1.254:3128; DIRECT";
}

Leave a Comment


NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <img localsrc="" alt="">