無料オンラインストレージとか


 メールを地味ーに整理してるのさ。超貯まってるけど。
 spamの整理は、定期的にspamフォルダのヘッダ一覧を目視で確認してから全て既読にしておくのが俺的に楽だと気付いた。Gmailだと2クリックである。削除は自動任せで。

 んで、JustSystemsからメールが来ていた。つーかジャストシステムって最後にs付くのな。今初めて気付いた(笑)。
 内容は、InternetDiskのアカウントが新システムになるんだか何だか。あったなあ。ATOKのオマケか何かで貰った無料領域だろうか。超懐かしいんですが。一応移行してみるか。
 手続きを終えて、試しにログインしてみると、どこかで見たようなWebUIが。そして何やらテストで送ったみたいなファイルが。消し去りたい過去に触れそうな気がしたので消去(笑)。
 全ファイルを削除したところで何となく空き容量を見ると、40MBであった。何というレガシー感。

 で、SaaSesもソラ箱とかいう無料ストレージをやってたな、と思い出したので見てみる。5.1GBが無料か。色々な使い方がありそうなことも書いてあるなあ。未実装だらけですが。
 既にアカウントもあるので、試しに利用開始してみて、えろす症候群のswfを放り込んでみた。ふむ。60KB/sくらいかなこれ。HTTPアップロードでもこれは遅いなあ。VPSは結構まともな速度なのに。つーか、そのVPSでストレージは十二分に余ってるじゃん的な。

 でもASUS WebStorageとかも見てみる。無料1GBで色々な機能が満載ですよ!
 つっても、仕様の詳細が全然わかんね。他と比べると断然面白そうな気もするけど、オンラインストレージを使う動機が無いことも分かり始めてきたので、当面は忘れることに。スマホとか持ってたらもっと遊べるのかなあ。


Nginxで簡単なバーチャルホストを立てた


 やっぱ試したいんで、PHP抜きの単純な奴を立ててみた。Lighttpd+mod_simple_vhostから置き換えやすいように、/srv/www/vhostsの下にホスト名のディレクトリやシンボリックリンクを置くだけの形にして、デフォルトサーバはアクセス禁止で。
 nginx.confのserverブロックはこんなん。

    server {
        deny all;
    }
    server {
        server_name ~\.[a-zA-Z]+\.?$;
        root /srv/www/vhosts/$host;
        index index.php index.html index.htm;
        location ~ /\.ht {
            deny all;
        }
    }

 この程度で普通に動く。一見。定数を逃がしたりディレクトリの存在を判定したりすれば、もっとmod_simple_vhost互換っぽくなりそう。別に要らないけど。
 一つ目のserverブロックでデフォルトサーバを拾って、二つ目のserverブロックでFQDNっぽいホスト名を全部拾っている。server_nameのしょぼいREがその判定。もっとマシなREは無いのか。
 rootのとこは良く見る書き方。$hostは基本的にHostリクエストヘッダを拾ってくるので、

GET /shadow HTTP/1.0
Host: ../../../etc

みたいなかっこいいリクエストを送ったらどうなるか気になったけど、普通に400が返ってきたので安心した。ちなみにLighttpd+mod_simple_vhostでも400。../vhosts/fooみたいに書いても400。
 他にちょっといじったとこの差分をまとめると、

    log_format main '$remote_addr $host - #以下略
    tcp_nopush on;
    server_name_in_redirect off;
    server_tokens off;

こんなもん。
 log_formatは$hostを埋めただけ。
 tcp_nopushは多分TCPパケット送信アルゴリズムの最適化だけど、FreeBSDだとbuggyだとか書いてあった。Linuxだしいいんじゃね。知らんけど。TAFとかふつー0ですしねゲーマー的に。それは微妙に違う話ですね。
 server_name_in_redirectは何となく。UseCanonicalName Onにいい思い出が無いので。多分どうでもいい。むしろ間違った選択かもしれない。
 server_tokensは普通にoffでいいんじゃね。

 で、このまま実験終了でもいいけど、どうせならPHPも走らせてみるかなあ。インストールするもんが急に増えるけど、PHP-FPM立てるまでの手間は大したこと無いし。
 あ、CGIだけLighttpdかApacheに流す手もあるかも。そしたらメインサーバで普通にNginx行けるかも。
 つーかApacheに流すならmod_phpも使えるなあ。有利かどうかは分からんけど。

 ていうかそれLighttpdだけでいいんじゃね?
 ていうか話がループしてね?


Nginxが理解不能だった理由を理解する


 少し素直じゃないWebサービスをNginxで適当にカンで動かそうとして失敗した、というのがここまでの話。
 日本語だと定番設定のサンプルくらいしか見当たらないので、十倍疲れる英語時空に突入。NginxのWikiのConfigurationのとこが一番まとまってそうだ。そこからNginx Primerという記事に飛んで、ちょっと読んで納得した。適当じゃコケても不思議は無いな。
 つーか設計も面白そうだし、やはりもう一度試してみよう。まずはSaaSesの方で実験かな。

 で、結局NginxのWikiをひたすら読む展開に。入り口には「日本語」とかいうリンクが見えるけど、中身はほぼ翻訳されてないというオチ。
 しばらく読むと飽きてきたので、SaaSesの方にインストールしてみる。現在のstableは0.8.54、EPELは0.8.53、変更点を見ても問題無さそうなので、yumでEPELからインストールして、/etc/nginx/nginx.confを開いて適当に編集開始。
 えーと…。何だろうこれ。Wikiの駄目な設定例にあるような書き方が普通にごろごろしてんだけど。前回はこれをベースに適当に弄ったんだよな。そりゃ動かんだろ。serverブロックだけはスクラッチから書くか。

 と、ここまで楽しく進んでたのだけど、CGIサポートで悩む。NginxはFastCGIしか対応してないのだよな、そういえば。誰かがCGIを使いたがった時に「あー無理ッス」で終了、ってのもな…。つっても、Lighttpdでも今のところPerlにしか対応させてないけど、まあ要望があればバイナリでも何でも対応は簡単だ。多分。しかしNginxだとFcgiWrapを使うのが主流のようで、yumでちょろっと入れたいと思っても見当たらず。今回はyumで全て済ませる所存であるので。portsすら回避してtarball拾ってた頃が懐かしい。
 という訳で、まあ別に現状で困ってはいないし、さくら鯖はLighttpd+PHP-FPMを続行することに。残念ではあるが、焦る必要も無かろう。「理解出来なくて放置」という状態ではなくなったので、気持ちの引っ掛かりも無いし。
 つっても、一応設定してSaaSes鯖でNginxを動かしておいてもいいかもな。


さくらとSaaSesのVPSでNSDを走らせる


 属性JPのNSを移そうとしたら、セカンダリNSの指定が必須になってた。やっぱりか。
 2/28でいきなり使えなくなっても困るので、SaaSesのVPSの試用を開始。OsukiniサーバLTって奴。月額450円は素晴らしい。初期費用3000円は重いけど。
 VPSじゃなくても、セカンダリNSだけ引き取ってくれるサービスとかありそうな気もするけどな。

 最小構成で申し込んで、数分したら利用可能になっていたので、まずはsshdのポート変更を行う。シリアルコンソールとかは無いので、危ないことは最初にやってしまおうと。OSの再インストールはWebから出来るみたいなので、その辺は多少気楽だけど。
 んで、パスワード変えて、Apacheが走ってたので停止して、yumでEPELを使えるようにして、NSDをインストール。簡単ですなあ。
 あとはNSDの設定だが、ログインすることの多いさくらを当然プライマリに。

 プライマリのIPアドレスを192.0.2.1、セカンダリのIPアドレスを192.0.2.99とすると、プライマリのnsd.confは、

zone:
    name: first.example
    zonefile: /etc/nsd/master/first.example.zone
    notify: 192.0.2.99 NOKEY
    provide-xfr: 192.0.2.99 NOKEY

zone:
    name: second.example
    ...

って感じで、セカンダリのnsd.confは、

zone:
    name: first.example
    zonefile: /etc/nsd/slave/first.example.zone
    allow-notify: 192.0.2.1 NOKEY
    request-xfr: AXFR 192.0.2.1 NOKEY

zone:
    name: second.example
    ...

って感じにした。request-xfrにはAXFR指示子が必要っぽい。IXFRに対応していないサーバだとこれが必要で、NSDはIXFRに対応していない。フォールバックしないのもゾーン転送クライアントの設計としては正しいだろう。サーバとして動作する時はフォールバックの動作指定もあるし。実に合理的な罠である。
 んで、プライマリでnsdcを普通にリビルドしてリロードしたらきっちり動いた。手動でゾーン転送させたい時は、プライマリ側でnsdc notifyで一発。allow-notifyを127/8にも通せば、セカンダリ側でnsdc updateでも更新出来るようだけど、別に要らないのでやらない。

 試用開始からここまでの作業時間が15分くらいだったので、何か忘れてないかと激しく疑心暗鬼になるのだが。

 ところで、SaaSesの方はRTTが8msだった。凄い時代ですなあ。ベンチマークとか掛けてないからマシンパワーは分からないけど。HDDも丸々50GB空いてるし、スタティックなWebサーバくらい立ててもいいかも。帯域は厳しそうだけど。2011/2/1現在、サービス全体で1Gbpsとのこと。安さを考えたら全く不満は無いが。
 まあ、何か別の用途で使うにしても、いつ消えてもいいような物だけ入れるようにしよう。


ちょっと前に借りた専用サーバの立場が無いような


 あ〜ごんのデータをさくらの専鯖からVPSに移動してて思い出したのだが、月一万円近く掛かってた専鯖はそういえば10Mbps共有回線だったよなー、って。1.12MB/sで転送されてるのを見て、ああ、額面通りだったのだなー、って。
 同じさくらでも、VPSだと月千円くらいで100Mbps共有回線です。帯域以外のスペックも不満ねーですし。喜んでいいのか悲しんでいいのか。両方か。