ngx_small_light

17
ngx_small_light Tatsuhiko Kubo [email protected]

Upload: tatsuhiko-kubo

Post on 30-Jun-2015

1.015 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: ngx_small_light

ngx_small_light

Tatsuhiko [email protected]

Page 2: ngx_small_light

ngx_small_light

● Nginxで画像変換を行うための拡張モジュール● mod_small_lightのNginx版

○ mod_small_light自体はlivedoor(現NHN Japan)が開発

○ http://code.google.com/p/smalllight/○ mod_small_lightをNginxに移植した、と言った方が正しい

Page 3: ngx_small_light

設定の書き方

Page 4: ngx_small_light

設定の書き方

どこかで見たことがあるような書き方ですよね

Page 5: ngx_small_light

本家(mod_small_light)の設定

Page 6: ngx_small_light

mod_small_lightとの主な違い

● 今のところImageMagickのみをサポート○ mod_small_lightはImlib2もサポートしている

● pパラメータを指定した時の挙動が若干異なる○ pパラメータ以外のパラメータは無視する

● infoパラメータを無視する○ リリース直前になって対応するの忘れてたことに気付く。。。

● ofを指定しない限りフォーマットは変換されない○ mod_small_lightは何も指定しないとJPEGに変換する

● あとは同じ・・・のはず○ パラメータのパーサや画像変換部分のコードは

mod_small_lightのコードをほぼ再利用している

Page 7: ngx_small_light

ところで、Nginxには既に

標準の画像変換モジュールがある

HttpImageFilterModule

Page 8: ngx_small_light

ところで、Nginxには既に

標準の画像変換モジュールがある

HttpImageFilterModule

略してImageFilter

Page 9: ngx_small_light

ImageFilterでさっきと同じようなことをする

http://img-origin:80/resize/hoge.jpgでImageFilter適用!

Page 10: ngx_small_light

ngx_small_lightの場合

Page 11: ngx_small_light

ImageFilterのイケてないところ

● 設定が複雑になりがち○ リクエストパラメータの解析ロジックを埋め込む必要があ

る○ 画質やサムネイルの変換方法(resizeとcrop)をコマンド

で指定する必要がある

Page 12: ngx_small_light

ImageFilterのイケてないところ

● 設定が複雑になりがち○ リクエストパラメータの解析ロジックを埋め込む必要があ

る○ 画質やサムネイルの変換方法(resizeとcrop)をコマンド

で指定する必要がある

あ...ありのまま起こったことを話すぜ!

Page 13: ngx_small_light

ImageFilterのイケてないところ

● 設定が複雑になりがち○ リクエストパラメータの解析ロジックを埋め込む必要があ

る○ 画質やサムネイルの変換方法(resizeとcrop)をコマンド

で指定する必要がある

あ...ありのまま起こったことを話すぜ!

俺は設定ファイルを書いていたと思ったらプログラムを書いていた

Page 14: ngx_small_light

ImageFilterのイケてないところ

● 設定が複雑になりがち○ リクエストパラメータの解析ロジックを埋め込む必要があ

る○ 画質やサムネイルの変換方法(resizeとcrop)をコマンド

で指定する必要がある

あ...ありのまま起こったことを話すぜ!

俺は設定ファイルを書いていたと思ったらプログラムを書いていた

な...何を言っているか(ry

Page 15: ngx_small_light

mod_small_lightやngx_small_light

の設定ファイルがシンプルな理由

● パラメータの解析をモジュール側でやってる● 特定のパスにマッチしたらモジュールにそれを渡すだけ● 特定の変換パターンを定義してpパラメータで指定できる

○ mod_small_light■ SmallLightPatternDefine

○ ngx_small_light■ small_light_pattern_define

Page 16: ngx_small_light

ソースコードはgithubにあります

https://github.com/cubicdaiya/ngx_small_light

Page 17: ngx_small_light

ngx_small_lightの現状と今後

● まだ作ったばかりであまり詳細に検証できてない○ 現状experimentalレベルのプロダクトという認識

● ImageMagick以外もサポートしたい○ Imlib2とかGDとか

● mod_small_lightをpixiv用に改造する際に作った新規パラメータとか取り込みたい

● ドキュメントを書こう!