Download - ngx_small_light
![Page 2: ngx_small_light](https://reader033.vdocuments.pub/reader033/viewer/2022042816/559222551a28abab068b460f/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022042816/559222551a28abab068b460f/html5/thumbnails/3.jpg)
設定の書き方
![Page 4: ngx_small_light](https://reader033.vdocuments.pub/reader033/viewer/2022042816/559222551a28abab068b460f/html5/thumbnails/4.jpg)
設定の書き方
どこかで見たことがあるような書き方ですよね
![Page 5: ngx_small_light](https://reader033.vdocuments.pub/reader033/viewer/2022042816/559222551a28abab068b460f/html5/thumbnails/5.jpg)
本家(mod_small_light)の設定
![Page 6: ngx_small_light](https://reader033.vdocuments.pub/reader033/viewer/2022042816/559222551a28abab068b460f/html5/thumbnails/6.jpg)
mod_small_lightとの主な違い
● 今のところImageMagickのみをサポート○ mod_small_lightはImlib2もサポートしている
● pパラメータを指定した時の挙動が若干異なる○ pパラメータ以外のパラメータは無視する
● infoパラメータを無視する○ リリース直前になって対応するの忘れてたことに気付く。。。
● ofを指定しない限りフォーマットは変換されない○ mod_small_lightは何も指定しないとJPEGに変換する
● あとは同じ・・・のはず○ パラメータのパーサや画像変換部分のコードは
mod_small_lightのコードをほぼ再利用している
![Page 7: ngx_small_light](https://reader033.vdocuments.pub/reader033/viewer/2022042816/559222551a28abab068b460f/html5/thumbnails/7.jpg)
ところで、Nginxには既に
標準の画像変換モジュールがある
HttpImageFilterModule
![Page 8: ngx_small_light](https://reader033.vdocuments.pub/reader033/viewer/2022042816/559222551a28abab068b460f/html5/thumbnails/8.jpg)
ところで、Nginxには既に
標準の画像変換モジュールがある
HttpImageFilterModule
略してImageFilter
![Page 9: ngx_small_light](https://reader033.vdocuments.pub/reader033/viewer/2022042816/559222551a28abab068b460f/html5/thumbnails/9.jpg)
ImageFilterでさっきと同じようなことをする
http://img-origin:80/resize/hoge.jpgでImageFilter適用!
![Page 10: ngx_small_light](https://reader033.vdocuments.pub/reader033/viewer/2022042816/559222551a28abab068b460f/html5/thumbnails/10.jpg)
ngx_small_lightの場合
![Page 11: ngx_small_light](https://reader033.vdocuments.pub/reader033/viewer/2022042816/559222551a28abab068b460f/html5/thumbnails/11.jpg)
ImageFilterのイケてないところ
● 設定が複雑になりがち○ リクエストパラメータの解析ロジックを埋め込む必要があ
る○ 画質やサムネイルの変換方法(resizeとcrop)をコマンド
で指定する必要がある
![Page 12: ngx_small_light](https://reader033.vdocuments.pub/reader033/viewer/2022042816/559222551a28abab068b460f/html5/thumbnails/12.jpg)
ImageFilterのイケてないところ
● 設定が複雑になりがち○ リクエストパラメータの解析ロジックを埋め込む必要があ
る○ 画質やサムネイルの変換方法(resizeとcrop)をコマンド
で指定する必要がある
あ...ありのまま起こったことを話すぜ!
![Page 13: ngx_small_light](https://reader033.vdocuments.pub/reader033/viewer/2022042816/559222551a28abab068b460f/html5/thumbnails/13.jpg)
ImageFilterのイケてないところ
● 設定が複雑になりがち○ リクエストパラメータの解析ロジックを埋め込む必要があ
る○ 画質やサムネイルの変換方法(resizeとcrop)をコマンド
で指定する必要がある
あ...ありのまま起こったことを話すぜ!
俺は設定ファイルを書いていたと思ったらプログラムを書いていた
![Page 14: ngx_small_light](https://reader033.vdocuments.pub/reader033/viewer/2022042816/559222551a28abab068b460f/html5/thumbnails/14.jpg)
ImageFilterのイケてないところ
● 設定が複雑になりがち○ リクエストパラメータの解析ロジックを埋め込む必要があ
る○ 画質やサムネイルの変換方法(resizeとcrop)をコマンド
で指定する必要がある
あ...ありのまま起こったことを話すぜ!
俺は設定ファイルを書いていたと思ったらプログラムを書いていた
な...何を言っているか(ry
![Page 15: ngx_small_light](https://reader033.vdocuments.pub/reader033/viewer/2022042816/559222551a28abab068b460f/html5/thumbnails/15.jpg)
mod_small_lightやngx_small_light
の設定ファイルがシンプルな理由
● パラメータの解析をモジュール側でやってる● 特定のパスにマッチしたらモジュールにそれを渡すだけ● 特定の変換パターンを定義してpパラメータで指定できる
○ mod_small_light■ SmallLightPatternDefine
○ ngx_small_light■ small_light_pattern_define
![Page 16: ngx_small_light](https://reader033.vdocuments.pub/reader033/viewer/2022042816/559222551a28abab068b460f/html5/thumbnails/16.jpg)
ソースコードはgithubにあります
https://github.com/cubicdaiya/ngx_small_light
![Page 17: ngx_small_light](https://reader033.vdocuments.pub/reader033/viewer/2022042816/559222551a28abab068b460f/html5/thumbnails/17.jpg)
ngx_small_lightの現状と今後
● まだ作ったばかりであまり詳細に検証できてない○ 現状experimentalレベルのプロダクトという認識
● ImageMagick以外もサポートしたい○ Imlib2とかGDとか
● mod_small_lightをpixiv用に改造する際に作った新規パラメータとか取り込みたい
● ドキュメントを書こう!