小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Nginx + Lua + GraphicsMagick 實現(xiàn)切圖服務(wù)

 WindySky 2017-03-10

轉(zhuǎn)載:http:///archives/112/

  • 面臨的問題
  1. 網(wǎng)站需求變更,需要更多不同尺寸的縮略圖

  2. 有些圖片的縮略圖很少使用到,但還是存在了硬盤上,造成空間浪費(fèi)

  • 解決方法

Nginx搭配Lua模塊,如果訪問的圖片不存在,則調(diào)用GraphicsMagick的命令行實時生成指定尺寸的圖片。

-集成了Lua模塊的Nginx項目OpenResty

-GraphicsMagick的安裝和使用

-具體使用方法

原始圖片地址:

/images/f47aa98b47b4b7bd.jpg

自定義圖片尺寸:

/images/f47aa98b47b4b7bd_40x40.jpg

配置文件中可以寫成這樣

location ~ '/images/([0-9a-z]+)_([0-9]+)x([0-9]+).jpg$' {
    root /home/images;
    set $image_root =  '/home/images';
    set $fileName = ngx.arg[1];
    set $width = ngx.arg[2];
    set $height = ngx.arg[3];
    set $origin = $image_root/$fileName.jpg
    set $file = $image_root/$fileName_$widthx$height.jpg
    if (!-f $file) {
        rewrite_by_lua '
            local command = "gm convert "..ngx.var.origin.." -thumbnail "..ngx.var.width.."x"
                            ..ngx.var.height.." "..ngx.var.file;
            os.execute(command);
         ';
 }

這樣就能簡單的生成圖片指定尺寸的縮略圖了。


摘自:http://blog.csdn.NET/vboy1010/article/details/7868645

安裝lua模塊


1、Luajit2.0(推薦)或者 Lua5.1(Lua5.2暫不支持)

[plain] view plaincopy
  1. wget http:///download/LuaJIT-2.0.0-beta9.tar.gz  
  2. tar zxvf LuaJIT-2.0.0-beta9.tar.gz  
  3. cd LuaJIT-2.0.0-beta9  
  4. make   
  5. sudo make install PREFIX=/usr/local/luajit  

Note: to avoid overwriting a previous version,
the beta test releases only install the LuaJIT executable under the versioned name (i.e. luajit-2.0.0-beta10). 
You probably want to create a symlink for convenience, with a command like this:

sudo ln -sf luajit-2.0.0-beta9 /usr/local/bin/luajit (加上這句命令)


下面需要配置一下 luajit 或 lua 的環(huán)境變量(Nginx編譯時需要):

[plain] view plaincopy
  1. -- luajit --  
  2. # tell nginx's build system where to find LuaJIT:  
  3. export LUAJIT_LIB=/path/to/luajit/lib  
  4. export LUAJIT_INC=/path/to/luajit/include/luajit-2.0  
  5.   
  6. -- lua --  
  7. # or tell where to find Lua if using Lua instead:  
  8. export LUA_LIB=/path/to/lua/lib  
  9. export LUA_INC=/path/to/lua/include  


我的測試環(huán)境里,配置如下:

[plain] view plaincopy
  1. export LUAJIT_LIB=/usr/local/luajit/lib  
  2. export LUAJIT_INC=/usr/local/luajit/include/luajit-2.0 


    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多