このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

Netscapeのプロクシ設定について

発言者:mohri@1js.kanto-aw.co.jp
( Date Thursday, February 13, 1997 21:46:59 )


毛利と申します。始めまして。
Netscapeのプロクシ設定について質問させて下さい。

現在、プロクシの手動設定にてプロクシサーバとプロクシ無しの設定を行っているのですが、プロクシの設定をWebサーバから自動的にNetscapeに反映させる方法はないでしょうか?

Netscapeのネットワーク設定のプロクシの項目に、

 自動でプロクシを設定
   設定場所(URL):

という場所があるのですが、ここに何か指定するとプロクシの設定が自動的にWebサーバからNetscapeにほどこされるのでしょうか?

ご存じの方教えて下さい。よろしくお願いします。   

奥脇 さんからのコメント
( Monday, February 17, 1997 12:41:29 )

指定したURLに、
MIME type: application/x-ns-proxy-autoconfig
(suffix: .pac)
という形で、proxy auto configulation file が置いてある場合、
起動時に Netscape がこれを読み込み、
以後、その設定に従った、proxy server を使います。

この設定は、JAVA scripte で書かれているため、
いろいろと条件に応じて、
proxy server を切り替えて使うと言う事が可能になります。



佐藤啓一郎 さんからのコメント
( Monday, February 17, 1997 14:19:13 )

応用例として
Netscape Navigator用のAutomatic Proxy Configuration用JavaScript
 "Super Proxy Script(SPS)"というモノがあります。
NCSAサーバなどで設定するのですが、参考までに。



→  URLハッシュ式分散Proxyキャッシュ

毛利 さんからのコメント
( Monday, February 17, 1997 21:22:12 )

奥脇さん、佐藤啓一郎さん、貴重な情報をありがとうございました。
早速、試してみます。

後ほど試行結果についてお知らせしたいと思います。

毛利 さんからのコメント
( Wednesday, February 19, 1997 00:57:36 )

WebSTARからNetscapeブラウザにproxy設定ファイルを渡し、自動的にプロクシ
およびNoプロクシの設定を行うことができました。ご参考までにお知らせします。

1.設定環境について
次のような環境上でのプロクシ設定を行いました。

1) LAN上には10.*.*.*(例10.12.1.150など)のWebサーバが存在する
2) LAN上には*.mycom.co.jp(例www.div1.mycom.co.jpなど)のWebサーバが存在する
3) インターネットに接続するためのPROXYサーバはproxy.mycom.co.jpであり、
  使用ポートは8080である
4)プロクシ設定ファイルを置くWebサーバはwww.webstar.mycom.co.jp
5) WebSTARはVer1.3.1、NetscapeはVer2.01のマッキントッシュ版

2.プロクシ設定ファイルの作成
下のリストにあるようなJavaScriptで設定プログラムを作成し、pacというファイル拡張子
をつけて、www.webstar.mycom.co.jp上でWebSTARが存在するフォルダ内に保存します。
ここでは、WebSTAR本体と同じ階層に設定ファイルproxy.pacを置いたとします。

作成ファイル:proxy.pacのリスト
function FindProxyForURL(url, host)
{
  if (isPlainHostName(host) ||
    isInNet(host, "10.0.0.0", "255.0.0.0") || dnsDomainIs(host, ".mycom.co.jp"))
    return "DIRECT";
  else
    return "PROXY proxy.mycom.co.jp:8080; DIRECT";
}

3.WebSTARのsuffix mapに登録
次のようにWebSTARのsuffix mapに一行登録します。

Action → TEXT
Suffix → .PAC
Type  → TEXT
Creater → *
MIME Type → application/x-ns-proxy-autoconfig

4.Netscapeにて諸設定
1) オプション→ネットワーク設定→プロクシにて"自動でプロクシを設定"を選択
 URLにはproxy.pacを保存した場所のURLを指定します。ここでは、

 http://www.webstar.mycom.co.jp/proxy.pac

となります。

2) 全般の設定→ヘルパーにて一行追加(既に登録されている場合は編集)
ファイル/MIMEタイプ → application
サブタイプ → x-ns-proxy-autoconfig
ファイル拡張子 → pac
アプリケーション → 参照ボタンを押しNetscapeを指定
ファイルタイプ → TEXT
アクション → アプリケーションを起動を選択

5.テスト
Netscapeを起動すると、まずhttp://www.webstar.mycom.co.jp/proxy.pacを探し、
proxy.pacの設定が反映されます。ここで何にもエラーが表示されなければ、プロクシの
設定が正常に反映されていることになります。

1) LAN上のWebサーバにアクセスしてみる
 例えばLAN上のhttp://10.12.1.150/あるいはhttp://www.div1.mycom.co.jpにアクセスしてみます。
 このときに、Netscapeのウィンドゥ下部に表示されるアクセス先が直接"10.12.1.150"
あるいは"www.div1.mycom.co.jp"となっていれば、NoプロクシでアクセスしていることになりOKです。

2) プロクシ経由のWebサーバ(インターネット)にアクセスしてみる
 例えばここのホームページ(http://mtlab.ecn.fpu.ac.jp/)にアクセスしてみます。
このときに、1)と同様に表示されるアクセス先が"www.webstar.mycom.co.jp:8080"
となっていれば、プロクシサーバ経由でアクセスしていることになりOKです。

以上、長々と書いてしまいましたが、ご参考になれば幸いです。
佐藤啓一郎さんに指定して頂いたURLハッシュ式分散Proxyキャッシュも参考になりましたが、
Netscape社の下記のホームページも参考になりました。









→  Navigator Proxy Auto-Config File Format

毛利 さんからのコメント
( Wednesday, February 19, 1997 01:15:53 )

上記のプロクシ設定ファイル"proxy.pac"について補足します。

proxy.pacのリスト
function FindProxyForURL(url, host)
{
  if (isPlainHostName(host) ||
    isInNet(host, "10.0.0.0", "255.0.0.0") || dnsDomainIs(host, ".mycom.co.jp"))
    return "DIRECT";
  else
    return "PROXY proxy.mycom.co.jp:8080; DIRECT";
}

if文の中のisInNet(host, "10.0.0.0", "255.0.0.0")は、NetscapeからアクセスするURLに10.*.*.*(例10.12.1.150など)
が含まれている場合は真(true)となります。仮定しているLANがクラスAの"10.0.0.0"を使用しているLANなので、1バイト
目が10のものは全て"プロクシなし"の対象とするためにこのようにしています。
LAN上でクラスBのIPアドレスを使用している場合は、isInNet(host, "176.16.0.0", "255.255.0.0")となり、
クラスCの場合はisInNet(host, "192.168.1.0", "255.255.255.0")などと指定します。
isInNet(host, "176.0.0.0", "255.0.0.0")やisInNet(host, "192.0.0.0", "255.0.0.0")でも同じです。

if文中のdnsDomainIs(host, ".mycom.co.jp")は、NetscapeからアクセスするURLに".mycom.co.jp"が含まれている場合、
真となります。

以上2つの条件に合う場合は、return "DIRECT"となりプロクシサーバを経由せず直接アクセスします。

else文では、PROXY proxy.mycom.co.jp:8080の部分でプロクシサーバをしていしており、もしプロクシサーバがダウン
していたら、return "DIRECT"となり、プロクシサーバを経由せずにアクセスします。