Popular Posts(last24hours)

squidをいじる

※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。

squid(プロキシサーバ)ここ何日かいじっていました。
squidは自宅でも使っているのですが、それは自宅サーバのサイトはプロキシを経由しないと自宅で見ることができないためで、
サービスをデフォルトで起動している程度の設定に過ぎません。
いじってみると、実に事細かいことができることが分かりました。
今回squid.confで行ったのは、
・上位プロキシの指定(cache_peer ….parent)
・ローカルネットなど特定のURLやある文字を含むページはキャッシュしない(acl QUERY urlpath_regex)
バックスラッシュでエスケープした方がいいのかな?
・SSLとして使えるポートを追加する(acl SSL_ports port)
・場合によっては全くキャッシュしない
・ローカルネットや特定のURLは親サーバへ送らずにダイレクトに接続(always_direct)
(例)
acl domain-example dstdomain example.jp


always_direct allow domain-example
・squidのログをapache形式にする(emulate_httpd_log on)
・Webalizerでapache形式にしたsquidのログを読み込ませる(新たにsquid用のsquid_webalizer.confを作成し、confの中でLogTypeをclfにしたものをcronで実行させる)
・ネットワーク内の自動検出設定であるwpad.datに複数のプロキシを記述することで、最初のプロキシが落ちても次のプロキシを自動で読みに行く

(例)
・example.co.jp宛のアクセスは直接
・192.168.1ネットワーク宛のアクセスは直接
・192.168.2宛のプロキシは192.168.2.2ポート3128のプロキシを使い、
192.168.2.2がだめなときは192.168.2.3を使用する
それ以外は、192.168.3.2ポート3128のプロキシを使い、192.168.3.2が
だめな時は192.168.3.3を使用する。これはブラウザによってはmyipaddressの値が
ループバックアドレスであったり、ipv6だったりしてうまく取得できない場合があります。
その場合はelse以下の設定が使用されます。

function FindProxyForURL(url, host) {
if(shExpMatch(host,"example.co.jp")) return “DIRECT";
if(isInNet(host, “192.168.1.0","255.255.255.0″)) return “DIRECT";
if(myIpAddress().substring(0, 9) == “192.168.2")
return “PROXY 192.168.2.2:3128; PROXY 192.168.2.3:3128; DIRECT";
else
return “PROXY 192.168.3.2:3128; PROXY 192.168.3.3:3128; DIRECT";
}

・プロキシの存在を隠す
header_access X-Forwarded-For deny all
header_access Via deny all
header_access Cache-Control deny all
などなど
なかなかよいプロキシが作れました。

【PR】最近楽天で購入した商品

こちらもなかなかのボリューム。子供が綺麗に折り紙を折れるようになると、成長が感じられて、嬉しい。かんたん・かわいい・楽しい! 決定版 おりがみ大図鑑 大ボリューム!190作品がオールカラーでわかる! [...]

この手のやつは、いったいどういう仕組みで絵とペンの音声をマッチさせているのか不思議。もの凄いボリュームなので、子供も飽きずに楽しめます。音で学べる!英語ことば図鑑5000 タッチペンつき [ アレン玉 [...]

いつの間にか、黎明篇の続きが!前回で完結したとばかり思っていたので、これは嬉しい。そして、めちゃくちゃ面白い!宇宙戦艦ヤマト 黎明篇 第2部 マリグナント・メモリー [ 塙 龍之 ]価格:1,650円 [...]

Tips

Posted by admin