の形で呼ぶ。
//
// anchor_idはフレームを使う場合最低限各フレームごとに設定。お互い他のフレームを書換えたときにへんな干渉をさけるため。
// その他ページの種別毎などで変えてもよいが、あまり小分けにするとcookieが増える。
// 同じanchor_idで保存されるcookieは1セットのみ。でも単独ページ表示のサイトなら概ねこれで充分。
anchor_id = "anc_main";
noanchor = false; // bodyにanchorをしかけたときなど場合によって一時無効にするためのフラグ。
// アンカーの記憶。
function anchor_save(object_id, page_id) {
if(noanchor) { anchor_erase(); return; }
get_scroll();
setcookie(anchor_id+"_pid", page_id, 0);
setcookie(anchor_id+"_st", scroll_top, 0);
setcookie(anchor_id+"_sl", scroll_left, 0);
if(object_id) {
object_top = scroll_top + get_object_top(object_id);
object_left = scroll_left + get_object_left(object_id);
setcookie(anchor_id+"_oid", object_id, 0);
setcookie(anchor_id+"_ot", object_top, 0);
setcookie(anchor_id+"_ol", object_left, 0);
} else {
setcookie(anchor_id+"_oid", "", -1);
setcookie(anchor_id+"_ot", "", -1);
setcookie(anchor_id+"_ol", "", -1);
}
}
// アンカーの適用。
function anchor_apply(page_id) {
if((saved_page_id = getcookie(anchor_id+"_pid")) && page_id != saved_page_id) { return; }
get_scroll();
if((anchor_st = getcookie(anchor_id+"_st")) != "" && (anchor_sl = getcookie(anchor_id+"_sl")) != "") {
anchor_st = parseInt(anchor_st);
anchor_sl = parseInt(anchor_sl);
} else {
anchor_st = scroll_top;
anchor_sl = scroll_left;
}
if((object_id = getcookie(anchor_id+"_oid"))
&& (anchor_ot = getcookie(anchor_id+"_ot")) != ""
&& (anchor_ol = getcookie(anchor_id+"_ol")) != "") {
offset_top = (scroll_top + get_object_top(object_id)) - parseInt(anchor_ot);
offset_left = (scroll_left + get_object_left(object_id)) - parseInt(anchor_ol);
} else {
offset_top = offset_left = 0;
}
window.scrollTo(anchor_sl + offset_left, anchor_st + offset_top);
}
// アンカー消去。あえてとっておく必要がなければanchor_apply()後すぐ消去が望ましい。
function anchor_erase() {
setcookie(anchor_id+"_pid", "", -1);
setcookie(anchor_id+"_st", "", -1);
setcookie(anchor_id+"_sl", "", -1);
setcookie(anchor_id+"_oid", "", -1);
setcookie(anchor_id+"_ot", "", -1);
setcookie(anchor_id+"_ol", "", -1);
}
//-->
倉金家ホームページ
趣味の部屋/サーバー構築メモ
プロバイダーの値上げに伴いプロバイダーを変更します。 そうするとレンタルDNSというのを借りていたので費用がかかります。 DNSも建ててみることにしました。 |
|
|
今まで使っていたプロバイダーのASAHI NETが無料だった固定IPアドレスを有料化すると言ってきました。さっそくsakura internetに乗り換えることにしました。(こういうことはわりと情け容赦なくやるたちで...) jpドメインはレンタルDNSというのを使っていて設定を変えるときには費用が必要です。ついにDNS(Domain Name System)サーバーも立ち上げてみることにしました。
|
構想
Vine4にはBIND9というDNSサーバープログラムがあるのでそれを使います。
DNSにはインターネットでつなぎたいドメインのIPアドレスを得る機能(RESOLVER)と、自分のドメインのIPアドレスを知らせる機能があるのですが、目的は後者です。今回は両方やってみます。ただしRESOLVERとしての機能はプロバイダーのDNSを使ったほうがいいかもしれません。(たぶん速い)
ホストするドメインは kuragane.jp です。最初そこにDNSを設置すればいいかと思っていたのですが、よく考えてみると、 kuragane.jp のアドレスを得るには kuragane.jp に設置されたDNSに繋がらなくてはならない。kuragane.jp のDNSに繋ぐには kuragane.jp のアドレスを知らなくてはならない。...む、矛盾だ〜!!でもやる前に気がつくなどさすがだ。
というわけで、たまたま持っている別のドメイン iroribata.net にDNSを設置することにします。こちらはDNS指定はレジストラのサービスを使っています。 ついでにもう一台バックアップサーバーが動いており、それをセカンダリDNSにします。
|
インストール
BIND9はVine Linuxをフルインストールしたので既に入っています。 もしインストールされていなければSynaptic、あるいはapt-getででもインストールします。 現在のバージョンは bind-9.3.2P2-0vl1.5 です。
|
設定
http://www.obenri.com/_network/name.html がたいへん参考になりました。 bind9の設定ファイル /etc/named.conf を編集しますが、localhost関係とresolverとしての設定はすでにされているので、ファイルの最期にDNSしたいドメイン名とサーバーの動作(master or slave)、およびホスト名設定ファイルの指定などを書き加えます。 zone "kuragane.jp" IN { type master; file "kuragane.jp.zone.master"; allow-transfer { 61.192.198.53; }; notify yes; also-notify { 61.192.198.53; }; };
マスターゾーンファイル kuragane.jp.zone.masterをつくり、以下を書きこみます。 $TTL 86400 @ IN SOA jiji.iroribata.net. donbei.iroribata.net. ( 2008040302 ; serial 3600 ; refresh 1hr 600 ; retry 10min 604800 ; expire 1 week 86400 ; minimum 24hr ) IN NS jiji.iroribata.net. IN NS ns.yunosato.net. IN MX 10 mail @ IN A 219.117.195.47 mail IN A 219.117.195.47 www IN A 219.117.195.47 ftp IN A 219.117.195.47
ちなみに jiji.iroribata.net は今回DNS自身に設定したホスト名、donbei.iroribata.net はDNS管理者のメールアドレス、219.117.195.47はkuragane.jpのアドレス、61.192.198.53(ns.yunosato.net) はセカンダリDNSに使うバックアップサーバーのアドレスです。
|
同様にセカンダリDNSにするほうのサーバーの /etc/named.conf に zone "kuragane.jp" IN { type slave; file "kuragane.jp.zone.slave"; masters { 219.117.195.47; }; allow-notify { 219.117.195.47; }; };
を書込みます。ファイル kuragane.jp.zone.slave は自動的に作られますのでいりません。
|
ファイアウォールを設定します。 /etc/sysconfig/iptables にtcpとudpのポート53の許可を設定します。 設定したら service iptables restart で新しい設定を有効にします。
dnsの問い合わせ順を変更します。 /etc/resolv.conf の最初の行に nameserver 127.0.0.1 を記述。
named の起動を設定し、実際に起動してみます。 checkconfig --level 2345 named on service named start
/var/log/messages を見てnamed起動 succeeded とあればOKです。
ためしにブラウザでいつも見ているWEBサイトを表示させてみます。 ...いつもより少し遅いかな?
dig @localhost xxxx.com と dig @(プロバイダのDNSアドレス) xxxx.com を比較。所要時間を比較してみると 1回目はプロバイダのDNSのほうが少し速い! 2回目以降はlocalhost(すなわち今回設定したDNS)がだいぶ速い。 という結果でした。
以上で終わり。
これではあまりにあっけないので、そのあとログをとるようにしたり外部からの余計なサービス要求を受け付けないようにしたり多少こまかい変更をしましたが省略。
|
|
|