SlideShare a Scribd company logo
1 of 17
Download to read offline
ngx_small_light



             Tatsuhiko Kubo
           bokko@pixiv.co.jp
ngx_small_light




● Nginxで画像変換を行うための拡張モジュール
● mod_small_lightのNginx版
 ○ mod_small_light自体はlivedoor(現NHN Japan)が開発
 ○ http://code.google.com/p/smalllight/
 ○ mod_small_lightをNginxに移植した、と言った方が正しい
設定の書き方
設定の書き方




  どこかで見たことが
あるような書き方ですよね
本家(mod_small_light)の設定
mod_small_lightとの主な違い

● 今のところImageMagickのみをサポート
 ○ mod_small_lightはImlib2もサポートしている
● pパラメータを指定した時の挙動が若干異なる
 ○ pパラメータ以外のパラメータは無視する
● infoパラメータを無視する
 ○ リリース直前になって対応するの忘れてたことに気付く。。。
● ofを指定しない限りフォーマットは変換されない
 ○ mod_small_lightは何も指定しないとJPEGに変換する
● あとは同じ・・・のはず
 ○ パラメータのパーサや画像変換部分のコードは
   mod_small_lightのコードをほぼ再利用している
ところで、Nginxには既に
標準の画像変換モジュールがある

HttpImageFilterModule
ところで、Nginxには既に
標準の画像変換モジュールがある

HttpImageFilterModule

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




http://img-origin:80/resize/hoge.jpgでImageFilter適用!
ngx_small_lightの場合
ImageFilterのイケてないところ

● 設定が複雑になりがち
 ○ リクエストパラメータの解析ロジックを埋め込む必要があ
   る
 ○ 画質やサムネイルの変換方法(resizeとcrop)をコマンド
   で指定する必要がある
ImageFilterのイケてないところ

● 設定が複雑になりがち
  ○ リクエストパラメータの解析ロジックを埋め込む必要があ
    る
  ○ 画質やサムネイルの変換方法(resizeとcrop)をコマンド
    で指定する必要がある

あ...ありのまま起こったことを話すぜ!
ImageFilterのイケてないところ

● 設定が複雑になりがち
  ○ リクエストパラメータの解析ロジックを埋め込む必要があ
    る
  ○ 画質やサムネイルの変換方法(resizeとcrop)をコマンド
    で指定する必要がある

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

俺は設定ファイルを書いていたと思ったらプログラムを書いていた
ImageFilterのイケてないところ

● 設定が複雑になりがち
  ○ リクエストパラメータの解析ロジックを埋め込む必要があ
    る
  ○ 画質やサムネイルの変換方法(resizeとcrop)をコマンド
    で指定する必要がある

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

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

な...何を言っているか(ry
mod_small_lightやngx_small_light
  の設定ファイルがシンプルな理由



● パラメータの解析をモジュール側でやってる
● 特定のパスにマッチしたらモジュールにそれを渡すだけ
● 特定の変換パターンを定義してpパラメータで指定できる
  ○ mod_small_light
    ■ SmallLightPatternDefine
  ○ ngx_small_light
    ■ small_light_pattern_define
ソースコードはgithubにあります

https://github.com/cubicdaiya/ngx_small_light
ngx_small_lightの現状と今後


● まだ作ったばかりであまり詳細に検証できてない
  ○ 現状experimentalレベルのプロダクトという認識
● ImageMagick以外もサポートしたい
  ○ Imlib2とかGDとか
● mod_small_lightをpixiv用に改造する際に作っ
  た新規パラメータとか取り込みたい
● ドキュメントを書こう!

More Related Content

More from Tatsuhiko Kubo

ngx_small_lightで動的サムネイル生成 #yapcasia2012
ngx_small_lightで動的サムネイル生成 #yapcasia2012ngx_small_lightで動的サムネイル生成 #yapcasia2012
ngx_small_lightで動的サムネイル生成 #yapcasia2012Tatsuhiko Kubo
 
ngx_small_light at 第2回闇鍋プログラミング勉強会
ngx_small_light at 第2回闇鍋プログラミング勉強会ngx_small_light at 第2回闇鍋プログラミング勉強会
ngx_small_light at 第2回闇鍋プログラミング勉強会Tatsuhiko Kubo
 
memcachedからKyotoTycoonへ
memcachedからKyotoTycoonへmemcachedからKyotoTycoonへ
memcachedからKyotoTycoonへTatsuhiko Kubo
 
dtl - diff template library
dtl - diff template librarydtl - diff template library
dtl - diff template libraryTatsuhiko Kubo
 
pixivの画像アップロードシステム
pixivの画像アップロードシステムpixivの画像アップロードシステム
pixivの画像アップロードシステムTatsuhiko Kubo
 

More from Tatsuhiko Kubo (10)

ngx_small_light
ngx_small_lightngx_small_light
ngx_small_light
 
ngx_small_lightで動的サムネイル生成 #yapcasia2012
ngx_small_lightで動的サムネイル生成 #yapcasia2012ngx_small_lightで動的サムネイル生成 #yapcasia2012
ngx_small_lightで動的サムネイル生成 #yapcasia2012
 
pixiv thumbnails
pixiv thumbnailspixiv thumbnails
pixiv thumbnails
 
ngx_small_light at 第2回闇鍋プログラミング勉強会
ngx_small_light at 第2回闇鍋プログラミング勉強会ngx_small_light at 第2回闇鍋プログラミング勉強会
ngx_small_light at 第2回闇鍋プログラミング勉強会
 
memcachedからKyotoTycoonへ
memcachedからKyotoTycoonへmemcachedからKyotoTycoonへ
memcachedからKyotoTycoonへ
 
dtl - diff template library
dtl - diff template librarydtl - diff template library
dtl - diff template library
 
pixivの画像アップロードシステム
pixivの画像アップロードシステムpixivの画像アップロードシステム
pixivの画像アップロードシステム
 
Memorypool Key
Memorypool KeyMemorypool Key
Memorypool Key
 
String Match Algrithm
String Match AlgrithmString Match Algrithm
String Match Algrithm
 
Diff
DiffDiff
Diff
 

Recently uploaded

LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアルLoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアルCRI Japan, Inc.
 
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfTakayuki Nakayama
 
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用KLab Inc. / Tech
 
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperleger Tokyo Meetup
 
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。iPride Co., Ltd.
 
Keywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdKeywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdkokinagano2
 
情報を表現するときのポイント
情報を表現するときのポイント情報を表現するときのポイント
情報を表現するときのポイントonozaty
 
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルLoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルCRI Japan, Inc.
 

Recently uploaded (8)

LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアルLoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
LoRaWAN無位置ロープ式水漏れセンサーWL03A 日本語マニュアル
 
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdfネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
ネットワーク可視化 振る舞い検知(NDR)ご紹介_キンドリル202405.pdf
 
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
2024年5月17日 先駆的科学計算フォーラム2024 機械学習を用いた新たなゲーム体験の創出の応用
 
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
 
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。
 
Keywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltdKeywordmap overview material/CINC.co.ltd
Keywordmap overview material/CINC.co.ltd
 
情報を表現するときのポイント
情報を表現するときのポイント情報を表現するときのポイント
情報を表現するときのポイント
 
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイルLoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
LoRaWAN無位置ロープ型水漏れセンサー WL03A-LB/LSカタログ ファイル
 

ngx_small_light