SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
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用に改造する際に作っ
  た新規パラメータとか取り込みたい
● ドキュメントを書こう!

Contenu connexe

Plus de 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
 

Dernier

Dernier (7)

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

ngx_small_light