Linuxの認定資格LPICやIT資格・ニュースなどについて扱います。LPICに関する自著や、ITスキルアップに役立つおすすめ書籍を紹介します。
今回と次回はプロキシサーバSquidを取り上げます。
今回はSquidの一般的な設定を取り上げる。/etc/squid/squid.confの主な設定項目は以下のとおり。
http_port 8080
リッスンするポート番号。デフォルトは3128。
icp_port 0
分散キャッシュ用ポート。0を指定すると無効になる。
cache_mem 20M
キャッシュメモリのサイズ。大きくするとパフォーマンスが向上するが、 スワップが発生しない程度に。
maximum_object_size 8192
キャッシュする最大のオブジェクトサイズ(KB単位)。デフォルトは4MB。大きなサイズのファイルダウンロードが頻繁にある場合などは指定すると効果的。
minimum_object_size 0
キャッシュする最小のオブジェクトサイズ。デフォルトは0KB=すべてキャッシュ。
maximum_object_size_in_memory 32
メモリ上の最大オブジェクトサイズ。あまり大きくするとメモリを占有してしまう。デフォルトは8KB。
ipcache_size 1024
DNS参照をして取得したIPアドレスをキャッシュする期間。
fqdncache_size 1024
DNS参照をして取得したFQDNをキャッシュする期間。
cache_dir /var/spool/squid 1000 16 256
・ディレクトリ
キャッシュを格納するディレクトリ。
・サイズ
キャッシュを保存する容量(MB単位)
・キャッシュディレクトリ数
キャッシュを格納するディレクトリの数。
・キャッシュサブディレクトリ数
上記ディレクトリの中に作成されるサブディレクトリ数
※cache_dirは複数記述できるので、複数のディスクに分けて設定すると負荷分散になる。
cache_access_log /var/log/squid/access.log
クライアントからのアクセスログ。noneで無効化。
cache_log /var/log/squid/cache.log
キャッシュ状況のログ。
cache_store_log /var/log/squid/store.log
ストレージマネージャのログ。削除されたオブジェクトや保存されたオブジェクトなどの情報。noneで無効化。
ftp_user anonymous@lpic.jp
匿名FTPサーバに接続する際のパスワード。
cache_mgr admini@lpic.jp
管理者のメールアドレスを指定。
dns_nameservers 172.16.0.1 10.0.0.1
/etc/resolv.conf以外に参照するネームサーバを指定。
visible_hostname px.lpic.jp
エラーメッセージに出力されるホスト名を指定。
今回から何回かに分けてBINDを取り上げます。
BIND9では、BIND8のndcコマンドに替わってrndcコマンドが使われる。rndcはネットワーク経由でBIND9の操作ができるようになっており、共通鍵を使って安全性を高めている。秘密鍵は以下の場所に配置する。
・/etc/named.conf内
・管理端末の/etc/rndc.conf
たとえローカルでの操作であってもrndcの操作には上記の設定が必要である。/etc/rndc.confを作成するには、次のようにする。
# rndc-confgen -b 512 -r /dev/urandom -k lpic.jp.key > /etc/rndc.conf
-kで鍵の名前を指定する(ここでは「lpic.jp.key」)。作成されたファイルの後半部分はコメントになっているが、この部分を/etc/named.confにコピーし(もちろんコメントを外して)、controlsステートメント内を適切に変更する。
例. /etc/rndc.conf
メルマガで連載している「LPIC2対策UPDATE」を再掲します。市販の教材では十分に対応できていない部分を強化する内容を連載していきます。今回はpatchコマンドについてです。
■第1回「patchコマンド」
パッチとは、新旧ファイルの差分(パッチ)のことである。古いファイルに対してパッチを適用する(パッチを当てる)ことによって、新しいファイルにアップデートできる。Linuxカーネルソースにおいてもパッチが提供されている。
パッチコマンドの基本的な使い方を見てみよう。例えば、oldfileとnewfileの差分ファイルがtest.patchであったとしよう。 旧ファイルoldfileにパッチを適用するには、次のようにする。
$ patch oldfile < test.patch
これで、oldfileファイルの内容はnewfileと同じになる。ちなみに差分ファイルtest.patchはdiffコマンドで作成できる。
$ diff oldfile newfile > test.patch
パッチを適用したものの、新たな不具合が起こるなどして元に戻したい場合があるだろう。パッチ適用前の状態に戻すには、-Rオプションを使う。
$ patch -R oldfile < test.patch
通常、パッチはディレクトリ単位で作成する(ほとんどのソフトウェアは複数のソースファイルで構成されている)。次の例では、dir01からdir02への差分ファイルdir.patchを使い、dir01の内容をdir02にアップデートしている。
$ patch -p0 < dir.patch
複数ファイルの差分を取った場合、パッチファイル内にはどのファイルに対する差分なのかという情報が格納される。しかし、例えばパッチ作成者のディレクトリ構成とパッチ適用者のディレクトリ構成が異なる場合(/usr/src/linuxと/usr/src/linux-2.6など)、パスにずれが生じて、そのままではうまくパッチが適用できないことになる。-pオプションを使えば、パッチファイル内のパスの先頭部分を無視させることができる。
例えば、パッチファイル内のパスがlinux/Makefileとなっているような場合、-p1を指定すると「linux/」部分が無視される。Makefileの格納されているディレクトリに移動してpatchコマンドを実行すればよい。
$ patch -p1 < patchfile
その他、patchコマンドには次のようなオプションもある。
パッチの適用が失敗した場合は、〜.rejという名前のファイルが生成されるので、その内容を見てパッチファイルの内容を手動で更新すればよい。