アペフチ

日記の検索部分をHTTP/2対応した

この日記の検索機能(フッターの検索フォームからできる)ではgroonga-httpdを使っている。日記本文はGitHub Pagesにホストしてもらっている。GitHub PagesはHTTPでもHTTPSでもどちらでもアクセスできて、ツイッターなどでURIを貼る時には僕はHTTPSの方を使っている。だがgroonga-httpdはこれまでHTTPSに対応していなかったので、XHRで接続することができなかった。仕方なく前段にNginxを立てて、そこでTLSの終端をしていた。

日課のapt-get update && apt-get upgradeをしていたらGroongaの各種パッケージが降って来たので更新内容を確認しに行った(6.0.0リリース - 2016-02-29)。そこにTLSサポートのことが書かれていたので、早速この日記の検索サーバーでもアップデートして、TLSを有効にした(と書くと白々しいか、TLSサポートは僕が要望した物だった:https://osdn.jp/projects/groonga/lists/archive/dev/2016-February/003951.html)。

また、groonga-httpdは前々からHTTP/2が使えるようになっていたので、ついでにそちらも有効にした。

検索は単純にキーアップイベントを拾い、入力の一文字目からその都度groonga-httpdに検索リクエストを投げるようにしているので、HTTP/2でコネクションを張りっぱなしにして検索できるのは効果が大きいのではないかと思う(測ってない)。

ただ、検索用に日記のデータを入力するのは手元のスクリプトでgroonga-client gemを使って実行していたのだが、このgemがHTTPS対応していないのでそこを対応しないといけない。それまでは、今日のこの日記以降の記事は検索対象にならない。HTTP接続用の別のポートを開けてもいいが、まあいいだろう。