Monthly Archives: 8月 2008

プロキシならchunked転送

mod_proxy – Apache HTTP サーバ
HTTP/1.1 のプロトコル仕様で、大きなデータを転送する場合は chunked 転送が用いられます。HTTP/1.0 の場合は chunked 転送が使えないので Content-Length ヘッダを送信しなければなりません。
すなわち HTTP/1.0 の場合は送信するデータの大きさを先に知っていなければならないんですね。PHP とかでコンテンツを動的に吐いている場合は Transfer-Encoding: chunked というヘッダが付いてきますが、これはコンテンツができた先から出力し、サーバ上のメモリ消費を抑えようとしているためです。
これはリバースプロキシを導入する場合にも影響します。Content-Length ヘッダを入れるためにプロキシサーバでデータを蓄えていたら、メモリは食うし、応答は遅くなるしで、いいことはありません。
そこで Apache の環境変数に proxy-sendchunked を設定すれば、全て chunked 転送を行うようになってくれるそうです。バックエンドのオリジンサーバが HTTP/1.1 をサポートしているならば、ぜひ設定したいですね。
どれくらい効率的になるのかは、知りません。

iptablesとDNSの複数Aレコード

Linux の標準的なパケットフィルタとして iptables があります。このルールを設定する際、ホストの指定は IP アドレスだけではなく、ホスト名でも可能です。カーネル上では IP アドレスで記憶していると思いますが・・・、調べたことはないです。通信ごとにホスト名を解決するなんてナンセンスだから IP だと思います。
で、ルールを設定する際にホスト名を指定すると、自動的に名前解決をして、上手いこと設定してくれるのは知ってました。これが予想外に賢くてビックリしたので、ここに書いておきます。
ホスト名を DNS で名前解決するときに、A レコードが複数返ってくると、全てのレコード分処理してくれるんですよ。こりゃー賢い。でも何に使うんだろ?iptables の定常的な変更があって、それを自動化するとか?あー、クライアントマシンとかで起動時に利用すると有効なのかな?

パスワードの生成に困ったら

SourceForge.net: Password Generator
Linux のパッケージに pwgen というものがあります。これは好みのパスワードを生成してくれます。似たものに makepassword ってのがありますが、使い勝手が悪いので pwgen の方がお勧めですね。
使い方は簡単。

$ pwgen
mue6aViy ahM4theb Ieque5ah Ue7aihe1 ieKoo9fo eid3ri1U Caagh1du Quae4Ogh
ioFe0eev OFo3xei0 Nue2chie Yigh7cuu Sa4iecho eu5ohf2X IXahlo2a Le5ohreG
eeph6Pee UoWeid6a ahL6Iv9i eexie8Fi Thae6rie aiyuRot8 aasheRe8 luna8Ahz
pheeng6L iewae1Ae shieTei4 Quu1ohca Nohng9fe ieX9uaL1 ich6Aey4 wia9Pahe
ohHieM7s Hahs9lo8 hobaL8uk phaviiY1 Pheaph6H oMi5Eegu OhSuB7pi uux1ahCa
lajieY2d eequu0Uc aer3Chie oaQuo7ee za2rei7O EiP9jae9 oor3Oth8 Pew3gaif
Uz1heexi eT7jaen1 uolut0Za aegae0Ku iedei1Se yaer0Eu9 eep1Teex Neiy9CeF
eeGox8Yo Chu1aVox hueDa4sh ohVaip3g xaiZuon3 Chiegh4a aisheiF3 ahbau9Wa
ohxoo3Ai eiBie2Gi ieRoo0mu gai8Eeza cee1Hoim weY9ahsh reihie8G ahVeiRa0
geiMee7g ahxoe9Mi eoKutie3 Ohki8osh UeJee9ee ohg8Kaed Eeph7Oob Eiph8ijo
kiedae3C ooZae3qu Wahr7iay choo9Uxi eew9oVua Rai7aeR2 eishuo9U ueLoh3ph
iem7Shoo Ohji9ahg phie3uRo imeTho3r yai8moCh vair2Loo ooKeech5 Thai7eik
Too0aiJ5 eZais2uu Quoe4Yai ieDo6ti9 Ohx1do9E ieJ8hoob eech6eiM Us1pai7e
Rohyaz3R Ahwie1oh Ieboqui3 uaBoh5Xe fei6Uyoo Yu7wah4c Choh7aiG thooJoo6
ie0Iyooh Borai3sh eiWa4Si1 IelePoo5 xe5ath0F chiuL8ow Oez6Au9k laiko0IH
phee7Tae soh3ohCu Eshais9S aeBah4Di EiNgee2n Ee4aeng3 iecho0Ab Oom3Eimo
choo6Ur5 aeN1itha siuTho5o ESh8naib Oesh3hi5 Eich4oon bahZe8oh OoL5idiJ
ieWe5aen ooH6hei7 Tee3choL Keeh6OiX io8meC1I ohgh5Ieg SoZuz1wo Wievie6a
Eicie7Ah phohToo4 ucho4Mai phaFuuV6 LeecuoD5 mie6ieNu ohqu0aSi Us1ieyee
eiCh3gee eeZ5laht eipie9Ah eef9Ephi Ce4xeuph oRoogh2w Dah9yomi koob2Ooy

ほうら、たくさん出してくれます。って、使いにくいですよね。オプションでパスワードの長さや個数を指定できます。

$ pwgen 8 1
Zae8nie0

記号も含めたい時はこんな感じです。

$ pwgen --symbol 8 1
ain1Ri_w

他にもオプションはたくさんあるので、ヘルプか man ページを見てね。