Tag:nginx

1月

前に途中まで書いていた記事をようやく公開。(twitter の書き込みを見ると 2010年10月ごろか)

WordPress はユーザ数が多いだけに、必要なものはたいていプラグインとして用意されている非常に使いやすいCMSだと思いますが、毎回動的にしかページを作れないという点にはちょっと不満を持っていました。

nginx や Vernish などのプロキシサーバを別に立ててキャッシュさせる方法を試そうと思っていたのですが、はまりポイントが多いらしく躊躇していました。そんな時に Really Static というプラグインを見つけたときから、今回の話は始まります。

Really Static プラグインの問題点

Really Static プラグインは、ブログの記事の HTML を PHP の curl 関数でダウンロードして static フォルダの中に置いておき、それ以降は PHP で動的に HTML を作るのではなく、静的な HTML ファイルを返す、といった事をしてくれるプラグインです。ちょうど、Ruby on Rails のページキャッシュみたいなイメージですね。

インストールも設定も難しくなく、HTML のダウンロードも WP-cron で少しずつ行われるため、完全に WordPress 内に閉じた環境で実現できるすぐれたプラグインだと思いますが、(私にとっては)ひとつだけ大きな欠点がありました。

Read More

8月

もう1年以上前に書いていた下書きをようやく公開。

前回(と言っても1年半前か) までで nginx と PHP の fast-cgi のビルドと設定が終わったので、OS の起動時に自動的に起動するようにサービスとして登録を行います。

OpenSolaris ではサービスの管理に SMF という仕組みを使用しています。SMF はサービスの依存関係を記述できたり、サービスの起動を監視して自動的に再起動してくれたりと、Linux などで使われている /etc/init.d の rc スクリプトに比べるとメリットがありますが、コマンドが独自だったり、自分で SMF にサービスを登録するには manifest と呼ばれる XML ファイルを書く必要があるので、慣れるまではハードルがあります。(この辺は Mac OS X の launchd と似ている。)

Read More

2月

前回の記事でSNI(Server Name Indication)拡張を有効にしたnginxのバイナリを作成したので遊んでみました。SNI拡張は、個々の仮想ホスト(VirtualHost)で独自のサーバ証明書を利用するために作られた TLSv1 の拡張仕様です。

TLSやSSLを使ったウェブサーバーでは一般的には仮想ホストは使えない、という事になっています(何事にも例外はありますが。)仮想ホストは HTTP のリクエストヘッダの Host フィールドの値を元に振り分けられますが,HTTPのリクエストを出すよりも手前の TLS/SSL のハンドシェイク時にサーバ証明書の検証が行われるので,クライアントが接続しようとしているホスト名とサーバ証明書のホスト名が異なってしまい,不正な証明書と表示されてしまいます。

SNIは接続しようとしているホスト名を、クライアントからサーバに伝えるための仕様です。(ホスト名はハンドシェイク前に伝えないと行けないので、平文で送られる事になりますが。。。)これ自体は素晴らしいのですが,Windows XP の IE がサポートしていないので今ひとつ広まっていません。

Read More

2月

Mercurial 付属の hgwebdir.fcgi を nginx で動かすメモ

CVS(やSubversion)をバージョン管理システムに使っていた頃はリポジトリの情報を見るのにViewVCを使っていましたが、ViewVCはMercurialをサポートしていません。Mercurial にはウェブ用の管理画面(hgweb/hgwebdir)が付属しているので、別のツールを使うニーズが少ないんでしょうね。

Mercurial のリポジトリ毎に対応する Redmine のプロジェクトが存在するので、そちらを見ればおおよその事は分かるのですが、Redmineのリポジトリブラウザはブランチを意識して作られていないので不便といえば不便です。

hgwebの事は Mercurial への移行を検討していたときにも調べていたんですが、Django, flup, setuptools, ez_setup.py, easy_install, .. とPythonに不慣れな人間にはなじみのない単語が続々と出てきたので、ちょっと敬遠していましたが、ちょっと時間が取れたのでチャレンジしてみました。

Read More